<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Portable Devices Team Blog : PTP</title><link>http://blogs.msdn.com/wpdblog/archive/tags/PTP/default.aspx</link><description>Tags: PTP</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Cancellation Behavior of MTP USB Devices</title><link>http://blogs.msdn.com/wpdblog/archive/2007/04/15/cancellation-behavior-of-mtp-usb-devices.aspx</link><pubDate>Sun, 15 Apr 2007 19:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2145678</guid><dc:creator>wpdblog</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/wpdblog/comments/2145678.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wpdblog/commentrss.aspx?PostID=2145678</wfw:commentRss><description>&lt;p&gt;The &lt;a href="http://www.usb.org/developers/devclass_docs/MTP_1.0.zip" title="MTP Specification" mce_href="http://www.usb.org/developers/devclass_docs/MTP_1.0.zip"&gt;MTP Specification&lt;/a&gt; contains&amp;nbsp;this definition of the &lt;b&gt;CancelTransaction &lt;/b&gt;Event:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;&lt;b&gt;G.2.2 CancelTransaction&lt;/b&gt;&lt;br&gt;&lt;/i&gt;Event Code: &lt;b&gt;0x4001&lt;/b&gt;&lt;br&gt;Parameter 1: None&lt;br&gt;Parameter 2: None&lt;br&gt;Parameter 3: None&lt;/p&gt;
&lt;p&gt;This event is used to initiate the cancellation of a transaction over transports which do not have their own mechanism for canceling transactions. The details of how a transaction is cancelled may be transport-specific. When an initiator or responder receives this event, it should cancel the transaction identified by the TransactionID in the event dataset. If the transaction has already completed, this event should be ignored.&lt;/p&gt;
&lt;p&gt;After receiving a CancelTransaction event from the initiator during an object transfer, the responder should send an Transaction_Cancelled response for the transfer which was in progress.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;MTP USB Transport Cancellation Behavior&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Why then does an MTP/USB device send a&amp;nbsp;&lt;b&gt;Status_OK &lt;/b&gt;(0x2001) instead of &lt;b&gt;Transaction_Cancelled&lt;/b&gt; (0x201F)&amp;nbsp;response when&amp;nbsp;it receives a &lt;b&gt;CancelTransaction&lt;/b&gt; (0x4001) from the application?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The reason is that the MTP USB transport&amp;nbsp;has defined how cancellation&amp;nbsp;is to be implemented.&amp;nbsp;&amp;nbsp;&amp;nbsp;As pointed out in the MTP Specification above, &lt;b&gt;CancelTransaction&lt;/b&gt;&amp;nbsp;is intended for "&lt;i&gt;transports which do not have their own mechanism for canceling transactions&lt;/i&gt;", and will not apply to MTP/USB devices.&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;the MTP/USB specifications for each cancellation scenario.&amp;nbsp;&amp;nbsp; In the cases below, "Host"&amp;nbsp;can be a PC running Windows Media Player 11, and "Device"&amp;nbsp;can be a MTP&amp;nbsp;music player or a PTP camera that connects to the PC through USB.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Case A. When the Host Cancels&lt;br&gt;&lt;/u&gt;&lt;/b&gt;When&amp;nbsp;the device receives a cancellation request from the host,&amp;nbsp;it should return Device_Busy (0x2019) for&amp;nbsp;a &lt;b&gt;GetDeviceStatus&amp;nbsp;&lt;/b&gt;query.&amp;nbsp;&amp;nbsp;&amp;nbsp; The device should then perform cancellation and clean up, and return &lt;b&gt;Status_OK&lt;/b&gt; (0x2001)&amp;nbsp;for subsequent &lt;b&gt;GetDeviceStatus&lt;/b&gt; requests. The device should&amp;nbsp;NOT send a response for the cancelled transaction through the BULK-IN pipe.&lt;/p&gt;
&lt;p&gt;After the host receives a Status_OK response from&amp;nbsp;a &lt;b&gt;GetDeviceStatus &lt;/b&gt;query&amp;nbsp;on the device, it may issue the next transaction through the BULK-OUT pipe.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Case B. When the Device Cancels&lt;br&gt;&lt;/u&gt;&lt;/b&gt;If the device wants to cancel, it should STALL both BULK-IN and BULK-OUT endpoints.&amp;nbsp; When the device receives a &lt;b&gt;GetDeviceStatus &lt;/b&gt;request from host, the device should return &lt;b&gt;Transaction_Cancelled &lt;/b&gt;(0x201F) as the reason for the STALL, and the STALL-ed endpoint numbers.&lt;/p&gt;
&lt;p&gt;The host may then issue the &lt;b&gt;ClearFeature &lt;/b&gt;request to clear the STALL-ed endpoints. The device should clear, get ready for next command, and return Status_OK for next &lt;b&gt;GetDeviceStatus&lt;/b&gt; query.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Case C. When the Host and Device Both Cancel&lt;br&gt;&lt;/u&gt;&lt;/b&gt;When the device receives a cancel request from the host while it is trying to cancel,&amp;nbsp;it&amp;nbsp;should clear&amp;nbsp;any pending device-initiated cancellations, respond to the host with Device_Busy (0x2019) for subsequent &lt;b&gt;GetDeviceStatus&lt;/b&gt; requests, and proceed with normal host-initiated cancellation.&lt;/p&gt;
&lt;p&gt;When the device wants to cancel (this could be initiated by the user), it first checks if there&amp;nbsp;are any pending host-initiated cancellation.&amp;nbsp; If yes, the device can simply return.&amp;nbsp; If not, the device should STALL the BULK endpoints.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Cancellation Examples&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For cancellation examples, refer to the Picture Transfer Protocol (PTP)&amp;nbsp;Specification -&amp;nbsp;ISO 15740 Annex D: Sections D.7.2.1.2 (for device behavior) and D.9, available on the &lt;a href="http://www.i3a.org/technologies/image-formats/ptp/" title="I3A PTP Homepage" mce_href="http://www.i3a.org/technologies/image-formats/ptp/"&gt;I3A PTP website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In addition,&amp;nbsp;the &lt;a href="http://www.usb.org/developers/devclass_docs/usb_still_img10.pdf" class="" title="PTP/USB Definition" mce_href="http://www.usb.org/developers/devclass_docs/usb_still_img10.pdf"&gt;PTP USB Transport&lt;/a&gt;&amp;nbsp;specification also contains&amp;nbsp;a definition&amp;nbsp;for the GetDeviceStatus and&amp;nbsp;further descriptions of the BULK cancellation behavior.&lt;br&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2145678" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wpdblog/archive/tags/MTP/default.aspx">MTP</category><category domain="http://blogs.msdn.com/wpdblog/archive/tags/PTP/default.aspx">PTP</category></item><item><title>WIA Camera Support in Windows Vista (Part 2 of 2)</title><link>http://blogs.msdn.com/wpdblog/archive/2007/02/13/migrating-from-wia-to-wpd-part-2.aspx</link><pubDate>Tue, 13 Feb 2007 21:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1670507</guid><dc:creator>wpdblog</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/wpdblog/comments/1670507.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wpdblog/commentrss.aspx?PostID=1670507</wfw:commentRss><description>&lt;p&gt;In the &lt;a href="http://blogs.msdn.com/wpdblog/archive/2007/02/13/migrating-from-wia-to-wpd.aspx" class="" title="WIA Camera Support on Vista" mce_href="http://blogs.msdn.com/wpdblog/archive/2007/02/13/migrating-from-wia-to-wpd.aspx"&gt;previous post&lt;/a&gt;, we gave an overview of the&amp;nbsp;WIA-WPD Compatibility Layer and how WIA Applications can register for WIA_EVENT_DEVICE_CONNECTED events.&lt;/p&gt;
&lt;p&gt;In this&amp;nbsp;post, we will cover a more advanced topic: customization for PTP and MTP devices.&amp;nbsp;&amp;nbsp; The WIA-WPD&amp;nbsp;Compatibility Layer supports basic extensibility for custom WIA events and WIA properties.&amp;nbsp;&amp;nbsp; These events and properties were provided in the PTP WIA class driver that shipped with Windows XP.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Adding Custom PTP/MTP WIA Event Codes&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To specify a list of supported PTP/MTP event codes the '&lt;i&gt;&lt;b&gt;WiaEventCodes'&lt;/b&gt;&lt;/i&gt; entry should be provided.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;The following example shows 3 custom event codes being reported.&lt;/p&gt;
&lt;p&gt;HKR,,"WiaEventCodes",”0x0001,0x0002,0x0003”&lt;/p&gt;
&lt;p&gt;For each event code specified in the &lt;i&gt;&lt;b&gt;'WiaEventCodes'&lt;/b&gt;&lt;/i&gt; entry, a corresponding &lt;i&gt;&lt;b&gt;'WiaEventCodeXXX'&lt;/b&gt;&lt;/i&gt; entry must exist that specifies the name of the event and the GUID to use when reporting the event to WIA applications.&amp;nbsp; The entry should be constructed using the prefix &lt;i&gt;‘&lt;b&gt;WiaEventCode + the event code specified in WiaEventCodes entry’&lt;/b&gt;&lt;/i&gt;.&amp;nbsp; If the WiaEventCodeXXX entry is missing, the event will not be reported to WIA applications.&lt;/p&gt;
&lt;p&gt;HKR,,"WiaEventCode0x0001”,”{20179E3D-139C-40D3-A0CA-962B33D67EE3},My Custom Event”&lt;br&gt;HKR,,"WiaEventCode0x0002”,”{259A62CF-D8FE-44D0-A747-B14F54A02133},My Amazing Event”&lt;br&gt;HKR,,"WiaEventCode0x0003”,”{639F80C6-94D1-48E2-9D8E-6D0F12237E48},My Super Event”&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Adding Custom PTP/WIA Property Codes&lt;/b&gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt;To specify a list of supported PTP/MTP property codes the &lt;b&gt;&lt;i&gt;‘WiaPropertyCodes’&lt;/i&gt;&lt;/b&gt; entry should be provided. WIA properties will only appear on the root item.&amp;nbsp; These properties are commonly used to control/program the device.&amp;nbsp; &lt;/p&gt;
&lt;p mce_keep="true"&gt;The following example shows 3 custom property codes being reported.&lt;/p&gt;
&lt;p mce_keep="true"&gt;HKR,,"WiaPropertyCodes",”0x0001,0x0002,0x0003”&lt;/p&gt;
&lt;p mce_keep="true"&gt;For each property code specified in the &lt;i&gt;&lt;b&gt;‘WiaPropertyCodes’ &lt;/b&gt;&lt;/i&gt;entry, a corresponding &lt;i&gt;&lt;b&gt;‘WiaPropertyCodeXXX’ &lt;/b&gt;&lt;/i&gt;entry must exist that specifies the name of the property and the WIA property code to use when reporting the property to WIA applications.&amp;nbsp; The entry should be constructed using the prefix &lt;i&gt;&lt;b&gt;‘WiaPropertyCode + the property code specified in WiaPropertyCodes entry’&lt;/b&gt;&lt;/i&gt;.&amp;nbsp; If the WiaPropertyCodeXXX entry is missing, the event will not be reported to WIA applications.&lt;/p&gt;
&lt;p mce_keep="true"&gt;HKR,,"WiaPropertyCode0x0001”,”My Custom Device Property”&lt;br&gt;HKR,,"WiaPropertyCode0x0002”,”My Amazing Device Property”&lt;br&gt;HKR,,"WiaPropertyCode0x0003”,”My Super Device Property”&lt;/p&gt;
&lt;p mce_keep="true"&gt;&lt;b&gt;Sending PTP&amp;nbsp;Custom&amp;nbsp;Commands through WIA&lt;/b&gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt;PTP extension commands can be sent to the vendor's driver using &lt;a href="http://msdn.microsoft.com/en-us/library/ms629973%28VS.85%29.aspx" title="IWiaItemExtras::Escape" mce_href="http://msdn.microsoft.com/en-us/library/ms629973(VS.85).aspx"&gt;IWiaItemExtras::Escape&lt;/a&gt;.&amp;nbsp;&amp;nbsp; In Windows Vista, the WIA-WPD Compatibility&amp;nbsp;Layer&amp;nbsp;repackages&amp;nbsp;PTP extension commands sent using this&amp;nbsp;method into WPD&amp;nbsp;MTP/PTP extension commands, which are dispatched&amp;nbsp;to the WPD MTP class driver.&amp;nbsp;&amp;nbsp; This mechanism exists&amp;nbsp;to support&amp;nbsp;legacy WIA vendor applications that relied on&amp;nbsp;custom PTP commands&amp;nbsp;from Windows XP.&amp;nbsp; &lt;/p&gt;
&lt;p mce_keep="true"&gt;&lt;b&gt;Sending&amp;nbsp;MTP Custom Commands through WPD&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt;WPD supports sending of custom MTP commands to the MTP driver using the &lt;a href="http://msdn.microsoft.com/en-us/library/dd375691%28VS.85%29.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd375691(VS.85).aspx"&gt;IPortableDevice::SendCommand&lt;/a&gt;&amp;nbsp;API.&amp;nbsp;&amp;nbsp; For&amp;nbsp;a step-by-step description, visit DimeBy8's excellent post &lt;a href="http://blogs.msdn.com/dimeby8/archive/2006/10/04/Sending-MTP-commands-through-WPD-_2800_Part-1_2900_.aspx" mce_href="http://blogs.msdn.com/dimeby8/archive/2006/10/04/Sending-MTP-commands-through-WPD-_2800_Part-1_2900_.aspx"&gt;here&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p mce_keep="true"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p mce_keep="true"&gt;&lt;b&gt;WIA to WPD Content Type and Format&amp;nbsp;Mapping&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;The following table maps WIA&amp;nbsp;Item Types&amp;nbsp;to the WPD_OBJECT_CONTENT_TYPE.&amp;nbsp; &lt;/p&gt;
&lt;p mce_keep="true"&gt;In addition to video and image content, the WIA-WPD Compatiliby Layer supports thumbnails and audio annotations for objects that have them.&amp;nbsp;&amp;nbsp;Any data objects that do not fall under these categories (e.g. music files) will not appear in WIA applications.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt;
&lt;/p&gt;&lt;table style="border: medium none ; border-collapse: collapse;" class="MsoTableGrid" border="1" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr style=""&gt;
&lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 8pt;"&gt;WPD Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(240, 240, 240); border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 8pt;"&gt;WPD Content Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(240, 240, 240); border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 8pt;"&gt;WIA Item&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(240, 240, 240); border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 8pt;"&gt;WIA Item Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=""&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Device object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;N/A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Root item&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;(WiaItemTypeFolder | WiaItemTypeDevice | WiaItemTypeRoot)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=""&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Folder object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WPD_CONTENT_TYPE_FOLDER&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Folder Item&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WiaItemTypeFolder&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=""&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Functional Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WPD_CONTENT_TYPE_FUNCTIONAL_OBJECT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Folder Item&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WiaItemTypeFolder&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=""&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Image Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WPD_CONTENT_TYPE_IMAGE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Image Item&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;(WiaItemTypeImage | WiaItemTypeFile | WiaItemTypeTransfer)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=""&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Video Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WPD_CONTENT_TYPE_VIDEO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Video Item&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;(WiaItemTypeVideo | WiaItemTypeFile | WiaItemTypeTransfer)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=""&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Audio Object (used for annotations)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WPD_CONTENT_TYPE_AUDIO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Audio Item &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;(WiaItemTypeAudio | WiaItemTypeFile | WiaItemTypeTransfer)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=""&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 85.15pt; background-color: transparent;" valign="top" width="114"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;Other objects&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 142.85pt; background-color: transparent;" valign="top" width="190"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;WPD_CONTENT_TYPE_XXXX&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 83.95pt; background-color: transparent;" valign="top" width="112"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;N/A (These are ignored)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 130.85pt; background-color: transparent;" valign="top" width="174"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;N/A (These are ignored)&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: 'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The following table maps the WIA_IPA_Format property&amp;nbsp;to the&amp;nbsp;WPD_OBJECT_FORMAT property:&lt;i&gt;&amp;nbsp;&lt;/i&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table style="border: medium none ; width: 404.6pt; border-collapse: collapse;" class="MsoTableGrid" width="539" border="1" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr style=""&gt;
&lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 139.3pt; background-color: transparent;" valign="top" width="186"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WIA_IPA_FORMAT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(240, 240, 240); border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 265.3pt; background-color: transparent;" valign="top" width="354"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;The formats will be mapped as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style="border: medium none ; width: 254pt; border-collapse: collapse;" class="MsoNormalTable" width="339" border="1" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_EXIF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext rgb(240, 240, 240); border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_EXIF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_JPEG&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_JFIF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_PNG&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_PNG&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_GIF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_GIF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_TIFF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_TIFF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaAudFmt_WAV&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_WAVE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaAudFmt_MP3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_MP3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaAudFmt_AIFF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_AIFF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaAudFmt_WMA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_WMA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_MPG&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_MPEG&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_AVI&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_AVI&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 12.75pt;"&gt;
&lt;td style="border-style: none solid solid; border-color: rgb(240, 240, 240) windowtext windowtext; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="127" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WiaImgFmt_ASF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style="border-style: none solid solid none; border-color: rgb(240, 240, 240) windowtext windowtext rgb(240, 240, 240); border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 159pt; height: 12.75pt; background-color: transparent;" valign="bottom" width="212" nowrap="nowrap"&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;WPD_OBJECT_FORMAT_ASF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 8pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Configuration of the WIA-WPD Compatibility Layer&lt;/b&gt; &lt;/p&gt;
&lt;p minmax_bound="true"&gt;The following section lists the customization options in the WIA-WPD&amp;nbsp;Compatibility Layer that can be disabled/enabled by the device's INF [AddReg] section:&lt;/p&gt;
&lt;p minmax_bound="true"&gt;&lt;b&gt;Report EXIF&amp;nbsp;Image&amp;nbsp;Format&amp;nbsp;as JPG&lt;/b&gt;&lt;/p&gt;
&lt;p minmax_bound="true"&gt;Some WIA applications expect the EXIF image format to be reported as WiaImgFmt_JPG and not WiaImgFmt_EXIF.&amp;nbsp;&amp;nbsp; To &lt;b&gt;"opt-in"&lt;/b&gt; for this functionality, vendors can add the following to your device's INF:&lt;/p&gt;
&lt;p minmax_bound="true"&gt;HKR,,"ReportJPGFormatForEXIF",0x10001,1&lt;/p&gt;
&lt;p minmax_bound="true"&gt;&lt;b&gt;WIA Item Tree Behavior&amp;nbsp;for DCF&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p minmax_bound="true"&gt;If the WIA-WPD Compatibility layer encounters a storage that supports DCF, it will ‘shift’ the WIA item tree contents closer to the root item so items are easily found.&amp;nbsp; This will reduce the number of folder levels an application or user will have to navigate to get to the image or video content stored on the device.&amp;nbsp; This functionality can be &lt;b&gt;disabled &lt;/b&gt;by adding the following to your device’s .INF [AddReg] section.&lt;/p&gt;
&lt;p minmax_bound="true"&gt;HKR,,"DisableDCFSpecialProcessing",0x10001,1&lt;/p&gt;
&lt;p minmax_bound="true"&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;
&lt;p minmax_bound="true"&gt;&lt;i minmax_bound="true"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1670507" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wpdblog/archive/tags/MTP/default.aspx">MTP</category><category domain="http://blogs.msdn.com/wpdblog/archive/tags/WIA/default.aspx">WIA</category><category domain="http://blogs.msdn.com/wpdblog/archive/tags/PTP/default.aspx">PTP</category></item><item><title>WIA Camera Support in Windows Vista (Part 1 of 2)</title><link>http://blogs.msdn.com/wpdblog/archive/2007/02/13/migrating-from-wia-to-wpd.aspx</link><pubDate>Tue, 13 Feb 2007 11:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1667610</guid><dc:creator>wpdblog</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/wpdblog/comments/1667610.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wpdblog/commentrss.aspx?PostID=1667610</wfw:commentRss><description>&lt;p&gt;In this two-part post, we will cover&amp;nbsp;WIA&amp;nbsp;support&amp;nbsp;for cameras on Windows Vista, and the migration from WIA to WPD for richer applications.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;WIA-WPD Compatibility Layer&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;On Windows XP, Picture Transfer Protocol (PTP) cameras are accessible through&amp;nbsp;the &lt;a href="http://msdn.microsoft.com/en-us/library/ms630368%28VS.85%29.aspx" title="Windows Image Acquisition" mce_href="http://msdn.microsoft.com/en-us/library/ms630368(VS.85).aspx"&gt;WIndows Image Acquisition&lt;/a&gt; (WIA) infrastructure.&amp;nbsp; This is still supported on Windows Vista through&amp;nbsp;the WIA-WPD Compatibility Layer (&lt;i&gt;PortableDeviceWiaCompat.dll&lt;/i&gt;).&amp;nbsp;&amp;nbsp;This&amp;nbsp;component is a WIA mini-driver that&amp;nbsp;communicates to the&amp;nbsp;inbox&amp;nbsp;Media&amp;nbsp;Transfer Protocol (MTP)&amp;nbsp;class driver&amp;nbsp;using the WPD API.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The following classes of devices&amp;nbsp;have the WIA-WPD Compatibility Layer enabled:&lt;/p&gt;
&lt;p&gt;1. PTP Cameras&lt;/p&gt;
&lt;p&gt;2. MTP devices that report WPD_DEVICE_TYPE_CAMERA (subcomp = 2) or WPD_DEVICE_TYPE_VIDEO (subcomp = 6)&lt;/p&gt;
&lt;p&gt;3. WPD devices that support WPD_CONTENT_TYPE_VIDEO&amp;nbsp;or WPD_CONTENT_TYPE_IMAGE, and&amp;nbsp;with the lowest bit set in the&amp;nbsp;&lt;b&gt;&lt;i&gt;EnableLegacySupport &lt;/i&gt;&lt;/b&gt;entry&amp;nbsp;under Device Parameters.&amp;nbsp;&amp;nbsp; This can be set in the driver INF:&lt;/p&gt;
&lt;p&gt;HKR,,"EnableLegacySupport",0x10001,1&lt;/p&gt;
&lt;p&gt;&lt;b&gt;WIA&amp;nbsp;Event Registration for Cameras&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;On Windows Vista, WIA &lt;i&gt;imaging &lt;/i&gt;applications communicate to PTP cameras&amp;nbsp;via the WPD-WIA Compatibility Layer and the Media Transfer Protocol (MTP) class driver.&amp;nbsp; Windows&amp;nbsp;Autoplay is supported, third party applications can register for WIA device-connected events and appear in the autoplay dialog.&amp;nbsp;&amp;nbsp;&amp;nbsp;Note that some third-party WIA applications may require Elevation ("Run as Administrator") at first launch to in order to successfully register for WIA events.&lt;/p&gt;
&lt;p&gt;1. Only &lt;b&gt;&lt;i&gt;Global WIA Event Registration&lt;/i&gt;&lt;/b&gt;&amp;nbsp;for WIA_EVENT_DEVICE_CONNECTED is supported.&amp;nbsp;&amp;nbsp;&amp;nbsp;Any WIA application that registers for&amp;nbsp;this event will be listed in&amp;nbsp;the&amp;nbsp;Windows Autoplay dialog&amp;nbsp;when any WIA-compatible&amp;nbsp;PTP camera is connected.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;2. Supported registration mechanisms: &lt;b&gt;STI Proxy &lt;/b&gt;registration (&lt;i&gt;IStillImage::RegisterLaunchApplication&lt;/i&gt;), &lt;b&gt;WIA CLSID &lt;/b&gt;registration (&lt;i&gt;IWiaDevMgr::RegisterEventCallbackCLSID&lt;/i&gt;), and &lt;b&gt;WIA Program &lt;/b&gt;registration (&lt;i&gt;IWiaDevMgr::RegisterEventCallbackProgram&lt;/i&gt;).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Custom Vendor Events&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To enable &lt;i&gt;&lt;b&gt;Device-Specific&lt;/b&gt;&lt;/i&gt; &lt;i&gt;&lt;b&gt;WIA Event Registration &lt;/b&gt;&lt;/i&gt;for custom vendor events, there is an "opt-in" mechanism.&amp;nbsp;&amp;nbsp; There are&amp;nbsp;2 steps to this:&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Step&amp;nbsp;1:&amp;nbsp;The vendor camera driver INF will&amp;nbsp;need to add the &lt;i&gt;&lt;b&gt;UseWiaAutoPlay&lt;/b&gt;&lt;/i&gt; setting in the &lt;i&gt;Device Parameters&lt;/i&gt; section in the registry.&amp;nbsp; This is a DWORD setting.&amp;nbsp; If set to 1, the WPD-WIA Compatiliby Layer will mark "device connected" and custom vendor events as "action events."&amp;nbsp;&amp;nbsp;&amp;nbsp; If unset, the default value is 0 (WIA autoplay is disabled).&lt;/p&gt;
&lt;p&gt;HKR,,"UseWiaAutoPlay",0x10001,1&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Step 2: The vendor's application&amp;nbsp;calls the&amp;nbsp;IWiaDevMgr APIs to create a&amp;nbsp;Device-specific WIA event registration for their custom WIA event.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The overall effect of&amp;nbsp;enabling device-specific registration is the WIA&amp;nbsp;Autoplay dialog will appear for the custom event.&amp;nbsp;&amp;nbsp;&amp;nbsp;This XP-style dialog&amp;nbsp;is implemented&amp;nbsp;by the WIA Service.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;It is recommended that applications only register via Windows Autoplay or WIA Autoplay, but not both.&amp;nbsp;&amp;nbsp; Windows Autoplay registration is preferred.&lt;/p&gt;
&lt;p mce_keep="true"&gt;&lt;b&gt;Image and Video Acquisition&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;On Windows Vista, the camera image import functionality of the Scanner and Camera Wizard&amp;nbsp;is replaced by the Photo Acquisition Wizard and the Windows Photo Gallery.&amp;nbsp;&amp;nbsp; This is also known as the "Importing Pictures and Videos" dialog.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;The Photo Acquisition wizard communciates&amp;nbsp;to PTP cameras using WPD APIs (more specifically, it uses the WPD Namespace Extension).&amp;nbsp;&amp;nbsp;&amp;nbsp; It does not use the WIA APIs.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Video Content Support&lt;/b&gt;&lt;/p&gt;
&lt;p mce_keep="true"&gt;Video content support is removed from WIA for Windows Vista.&amp;nbsp;&amp;nbsp; The&amp;nbsp;effect is&amp;nbsp;video content on your device will not appear in WIA applications running on Windows Vista.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p mce_keep="true"&gt;To&amp;nbsp;access video content from your device, we recommend migrating your applciation to use the WPD API.&amp;nbsp;&amp;nbsp; WPD provides&amp;nbsp;broader content coverage (supports &lt;i&gt;both &lt;/i&gt;video and image content)&amp;nbsp;on Windows Vista for camera devices.&amp;nbsp;&amp;nbsp; For instance, the Vista Photo Acquisition Wizard uses WPD to retrieve pictures and video from PTP devices.&lt;/p&gt;
&lt;p mce_keep="true"&gt;For ease of migration, there is usually a straighforward correlation from WIA metadata to WPD object properties.&amp;nbsp; For example,&amp;nbsp;&lt;i&gt;WiaImgFmt_AVI&lt;/i&gt; corresponds to WPD_CONTENT_TYPE_VIDEO and WPD_OBJECT_FORMAT_AVI.&amp;nbsp;&amp;nbsp;&amp;nbsp;For more details,&amp;nbsp;refer to the&amp;nbsp;WPD &lt;a href="http://msdn.microsoft.com/en-us/library/dd420128.aspx" title="WPD video properties" mce_href="http://msdn.microsoft.com/en-us/library/dd420128.aspx"&gt;video properties&lt;/a&gt;&amp;nbsp;and &lt;a href="http://msdn.microsoft.com/en-us/library/dd375703%28VS.85%29.aspx" title="video format GUIDs" mce_href="http://msdn.microsoft.com/en-us/library/dd375703(VS.85).aspx"&gt;video format GUIDs&lt;/a&gt;&amp;nbsp;on MSDN.&lt;/p&gt;
&lt;p minmax_bound="true"&gt;&lt;b&gt;Next Post...&lt;/b&gt;&lt;/p&gt;
&lt;p minmax_bound="true"&gt;Watch the next post for more details on custom PTP&amp;nbsp;vendor commands through the&amp;nbsp;WIA&amp;nbsp;Escape mechanism, custom WIA property and event codes.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p minmax_bound="true"&gt;&lt;i minmax_bound="true"&gt;&lt;/i&gt;&amp;nbsp;&lt;/p&gt;
&lt;p minmax_bound="true"&gt;&lt;i minmax_bound="true"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1667610" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wpdblog/archive/tags/MTP/default.aspx">MTP</category><category domain="http://blogs.msdn.com/wpdblog/archive/tags/WIA/default.aspx">WIA</category><category domain="http://blogs.msdn.com/wpdblog/archive/tags/PTP/default.aspx">PTP</category></item></channel></rss>