<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MaB+fr</id>
	<title>Hydrogenaudio Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MaB+fr"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/MaB_fr"/>
	<updated>2026-04-29T16:48:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16681</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16681"/>
		<updated>2007-02-28T02:10:03Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Extensibility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.4&lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.3) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responds to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16576</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16576"/>
		<updated>2007-02-18T02:29:57Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.3&lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.3) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responding to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16225</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16225"/>
		<updated>2006-12-24T13:39:49Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Guide &amp;amp; Howtos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.1.1 &lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.1.1) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responding to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16224</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16224"/>
		<updated>2006-12-24T13:39:18Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Guide &amp;amp; Howtos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.1.1 &lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.1.1) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responding to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to listen audio from DVD and DVDAudio files in Windows Media Player]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16223</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16223"/>
		<updated>2006-12-24T13:38:54Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Guide &amp;amp; Howtos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.1.1 &lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.1.1) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responding to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to listen DVD Audio files from Windows Media Player]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16222</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=16222"/>
		<updated>2006-12-24T13:38:40Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Guide &amp;amp; Howtos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.1.1 &lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.1.1) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responding to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to listen DVD Audio files]]&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15893</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15893"/>
		<updated>2006-12-16T12:41:47Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (or tag type) : &lt;br /&gt;
APE, Vorbis, MPEG4 for example. &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures &lt;br /&gt;
(even if they are empty). &lt;br /&gt;
If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). &lt;br /&gt;
If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. &lt;br /&gt;
If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. &lt;br /&gt;
If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simplier for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. &lt;br /&gt;
The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			WriteStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And the nice header to go with it&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.h : &lt;br /&gt;
 //		Handler header for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #ifndef		STING_TAG_SUPPORT_H&lt;br /&gt;
 #define		STING_TAG_SUPPORT_H&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	#define		WIN32_LEAN_AND_MEAN&lt;br /&gt;
 	#define		UNICODE&lt;br /&gt;
 	#include	&amp;lt;windows.h&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	#include	&amp;quot;WMPTSE.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	#ifdef		STING_TAGSUPPORT_C&lt;br /&gt;
 		&lt;br /&gt;
 	&lt;br /&gt;
 	#define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API		__declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API		&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#else&lt;br /&gt;
 &lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API		extern __declspec( dllimport )&lt;br /&gt;
 		#elif		defined( _EXPORTDLL )&lt;br /&gt;
 			#define		STINGTAG_API		extern __declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API		extern&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#endif &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	//&lt;br /&gt;
 	// TODO : add your exportable function declaration here&lt;br /&gt;
 	//&lt;br /&gt;
 	//	WMPTSE TagSupport API&lt;br /&gt;
 	BOOL STINGTAG_API		ReadStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						METATAG *	pMetaTag &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 	BOOL STINGTAG_API		WriteStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						TAGITEM		tagiChangedItem &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #endif		STING_TAG_SUPPORT_H&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15587</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15587"/>
		<updated>2006-11-25T15:48:55Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (or tag type) : &lt;br /&gt;
APE, Vorbis, MPEG4 for example. &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures &lt;br /&gt;
(even if they are empty). &lt;br /&gt;
If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). &lt;br /&gt;
If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. &lt;br /&gt;
If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. &lt;br /&gt;
If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simple for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. &lt;br /&gt;
The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			WriteStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And the nice header to go with it&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.h : &lt;br /&gt;
 //		Handler header for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #ifndef		STING_TAG_SUPPORT_H&lt;br /&gt;
 #define		STING_TAG_SUPPORT_H&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	#define		WIN32_LEAN_AND_MEAN&lt;br /&gt;
 	#define		UNICODE&lt;br /&gt;
 	#include	&amp;lt;windows.h&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	#include	&amp;quot;WMPTSE.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	#ifdef		STING_TAGSUPPORT_C&lt;br /&gt;
 		&lt;br /&gt;
 	&lt;br /&gt;
 	#define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API		__declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API		&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#else&lt;br /&gt;
 &lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API		extern __declspec( dllimport )&lt;br /&gt;
 		#elif		defined( _EXPORTDLL )&lt;br /&gt;
 			#define		STINGTAG_API		extern __declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API		extern&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#endif &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	//&lt;br /&gt;
 	// TODO : add your exportable function declaration here&lt;br /&gt;
 	//&lt;br /&gt;
 	//	WMPTSE TagSupport API&lt;br /&gt;
 	BOOL STINGTAG_API		ReadStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						METATAG *	pMetaTag &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 	BOOL STINGTAG_API		WriteStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						TAGITEM		tagiChangedItem &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #endif		STING_TAG_SUPPORT_H&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=15586</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=15586"/>
		<updated>2006-11-25T15:46:39Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.1.1 &lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.1.1) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responding to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=15585</id>
		<title>WMP Tag Support Extender</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMP_Tag_Support_Extender&amp;diff=15585"/>
		<updated>2006-11-25T15:45:22Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Supported Filetypes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = Windows Media Player Tag Support Extender&lt;br /&gt;
| screenshot = [http://wmptagext.sourceforge.net/screenshots.html Screenshot]&lt;br /&gt;
| caption = WMP plug-in extending tag capabilities&lt;br /&gt;
| maintainer = MaB_fr &lt;br /&gt;
| stable_release = 1.1.1 &lt;br /&gt;
| preview_release = none  &lt;br /&gt;
| operating_system = Windows&lt;br /&gt;
| use = WMP plug-in&lt;br /&gt;
| license = Public domain + source&lt;br /&gt;
| website = [http://http://wmptagext.sourceforge.net/ http://wmptagext.sourceforge.net]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Media Player Tag Support Extender&#039;&#039;&#039; (WMPTSE) is a plug-in to [[Windows Media Player]] to allow more [[tags]] support than the default [[WMA]] + [[ID3]] within the player.&lt;br /&gt;
&lt;br /&gt;
It supports version 9.x, 10.x and 11.0 of [[Windows Media Player]].&lt;br /&gt;
&lt;br /&gt;
The current version (1.1.1) supports [[Vorbis comment]], [[APEv2]] and [[FLAC]] and [[MPEG4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Supported Tag Format==&lt;br /&gt;
* [[FLAC]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[Vorbis comment]] - READ-ONLY&lt;br /&gt;
* [[MPEG4]] - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
Additional tagging formats may be supported through a plug-in API (known as [[WMPTSE API]])&lt;br /&gt;
&lt;br /&gt;
==Supported Filetypes==&lt;br /&gt;
* [[FLAC]] - Free Lossless Audio Codec(*.flac)&lt;br /&gt;
* [[APE]] - Monkey&#039;s Audio (*.ape)&lt;br /&gt;
* [[MPC]] - MusePack (*.mpc)&lt;br /&gt;
* [[WavPack]] (*.wv)&lt;br /&gt;
* [[OptimFROG]] (*.ofr)&lt;br /&gt;
* [[Ogg Vorbis]] - Ogg files (*.ogg) - READ-ONLY&lt;br /&gt;
* [[AAC]] - Advanced Audio Coding (*.aac) - READ-ONLY&lt;br /&gt;
* [[M4A]],[[MP4]] - MPEG4 Audio (*.m4a) - READ-ONLY&lt;br /&gt;
&lt;br /&gt;
==Extensibility==&lt;br /&gt;
WMPTSE provide options to add tagging based on file extension.&lt;br /&gt;
&lt;br /&gt;
It allows tagging in files who usually don&#039;t support it, such as exotic (but useful) tagging of [[AC3]], [[DTS]] and [[LPCM]] files, or less useful like .txt, JPEG file tagging and more.&lt;br /&gt;
&lt;br /&gt;
Tag support is pluggable. Each &amp;quot;tag support dll&amp;quot; responding to the [[WMPTSE API]].&lt;br /&gt;
&lt;br /&gt;
==Guide &amp;amp; Howtos==&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a filetype]]&lt;br /&gt;
&lt;br /&gt;
[http://www.losslessaudioblog.com/wmpmce-lossless-guide/ The complete Media Center + WMPTSE guide] (from [http://www.losslessaudioblog.com/ LosslessAudioBlog])&lt;br /&gt;
&lt;br /&gt;
[[WMPTSE - How to add support for a tag format]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Price==&lt;br /&gt;
The sofware is free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://wmptagext.sourceforge.net/ WMPTSE homepage]&lt;br /&gt;
* [http://wmptagext.sourceforge.net/download.html WMPTSE download page]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=e03ece01d79f55a3f390268762345f0f&amp;amp;showtopic=38400&amp;amp;st=275 HydrogenAudio thread]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Media Players]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15584</id>
		<title>WMPTSE - How to add support for a tag format</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15584"/>
		<updated>2006-11-25T15:43:34Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an &#039;Sting tag format&#039; tagging to our MediaLibrary .pnge files (supposedly png file extension modified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the button &#039;&#039;&#039;Add a tagtype&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In the text field, type the tag type name (here, &#039;&#039;&#039;Sting&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the &#039;&#039;&#039;OK&#039;&#039;&#039; button to confirm&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, our new &#039;Sting&#039; format is showed on the tag type list&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We just have to select it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And continue with filetype support addition &lt;br /&gt;
(see - [[WMPTSE - How to add support for a filetype]] except the tag type is &#039;Sting&#039; not &#039;APE&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
* [[WMPTSE - How to add support for a filetype]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15583</id>
		<title>WMPTSE - How to add support for a tag format</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15583"/>
		<updated>2006-11-25T15:42:28Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an &#039;Sting tag format&#039; tagging to our MediaLibrary .pnge files (supposedly png file extension modified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the button &#039;&#039;&#039;Add a tagtype&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In the text field, type the tag type name (here, &#039;&#039;&#039;Sting&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the &#039;&#039;&#039;OK&#039;&#039;&#039; button to confirm&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, our new &#039;Sting&#039; format is showed on the tag type list&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We just have to select it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And continue with filetype support addition (see - [[WMPTSE - How to add support for a filetype]])&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15582</id>
		<title>WMPTSE - How to add support for a tag format</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15582"/>
		<updated>2006-11-25T15:41:40Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an &#039;Sting tag format&#039; tagging to our MediaLibrary .pnge files (supposedly png file extension modified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the button &#039;&#039;&#039;Add a tagtype&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In the text field, type the tag type name (here, &#039;&#039;&#039;Sting&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the &#039;&#039;&#039;OK&#039;&#039;&#039; button to confirm&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, our new &#039;Sting&#039; format is showed on the tag type list&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We just have to select it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And continue with filetype support addition (see - )&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15581</id>
		<title>WMPTSE - How to add support for a tag format</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_tag_format&amp;diff=15581"/>
		<updated>2006-11-25T15:41:00Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an &#039;Sting tag format&#039; tagging to our MediaLibrary .pnge files (supposedly png file extension modified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the button &#039;&#039;&#039;Add a tagtype&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE3_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In the text field, type the tag type name (here, &#039;&#039;&#039;Sting&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Push the &#039;&#039;&#039;OK&#039;&#039;&#039; button to confirm&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now, our new &#039;Sting&#039; format is showed on the tag type list&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We just have to select it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* And continue with filetype support addition (see - )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET5.png&amp;diff=15580</id>
		<title>File:WMPTSE3 ET5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET5.png&amp;diff=15580"/>
		<updated>2006-11-25T15:39:45Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE, adding support for a filetype with &amp;#039;Sting&amp;#039; format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]], adding support for a filetype with &#039;Sting&#039; format&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET4.png&amp;diff=15579</id>
		<title>File:WMPTSE3 ET4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET4.png&amp;diff=15579"/>
		<updated>2006-11-25T15:37:54Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE, the list of tag format, displaying our new &amp;#039;Sting&amp;#039; tag type&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]], the list of tag format, displaying our new &#039;Sting&#039; tag type&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET3.png&amp;diff=15578</id>
		<title>File:WMPTSE3 ET3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET3.png&amp;diff=15578"/>
		<updated>2006-11-25T15:37:20Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE, confirming the new tag type : &amp;#039;Sting&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]], confirming the new tag type : &#039;Sting&#039;&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET2.png&amp;diff=15577</id>
		<title>File:WMPTSE3 ET2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET2.png&amp;diff=15577"/>
		<updated>2006-11-25T15:36:46Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE adding a &amp;#039;Sting&amp;#039; tag type&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] adding a &#039;Sting&#039; tag type&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET1.png&amp;diff=15576</id>
		<title>File:WMPTSE3 ET1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE3_ET1.png&amp;diff=15576"/>
		<updated>2006-11-25T15:36:08Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE adding a tag type&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] adding a tag type&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15575</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15575"/>
		<updated>2006-11-25T15:25:08Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .pnge files (supposedly png file with APE tag at the end).&lt;br /&gt;
 &lt;br /&gt;
The pnge format being a container format, our tag binary data will not be interpreted by the pnge readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
Because WMP v9 is very restrictive on the filetype you can add in Media Library, we made up the &#039;pnge&#039; file format. But with WMP10 and WMP11 you should simply tag &#039;png&#039; files &#039;&#039;to verify&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll and click &#039;&#039;&#039;open&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), &lt;br /&gt;
 FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API &lt;br /&gt;
 function name WMPTSE will search. &lt;br /&gt;
 WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You&#039;re now ready to add support for your new filetype, just click &#039;&#039;&#039;Add&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET9.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The filetype is displayed in the tag support list on the WMPTSE propery page&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET10.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15574</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15574"/>
		<updated>2006-11-25T15:24:08Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .pnge files (supposedly png file with APE tag at the end).&lt;br /&gt;
 &lt;br /&gt;
The pnge format being a container format, our tag binary data will not be interpreted by the pnge readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
Because WMP v9 is very restrictive on the filetype you can add in Media Library, we made up the &#039;pnge&#039; file format. But with WMP10 and WMP11 you should simply tag &#039;png&#039; files &#039;&#039;&#039;to verify&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll and click &#039;&#039;&#039;open&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), &lt;br /&gt;
 FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API &lt;br /&gt;
 function name WMPTSE will search. &lt;br /&gt;
 WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You&#039;re now ready to add support for your new filetype, just click &#039;&#039;&#039;Add&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET9.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The filetype is displayed in the tag support list on the WMPTSE propery page&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET10.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15573</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15573"/>
		<updated>2006-11-25T15:22:13Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .pnge files (supposedly png file with APE tag at the end).&lt;br /&gt;
 &lt;br /&gt;
The pnge format being a container format, our tag binary data will not be interpreted by the pnge readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll and click &#039;&#039;&#039;open&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), &lt;br /&gt;
 FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API &lt;br /&gt;
 function name WMPTSE will search. &lt;br /&gt;
 WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You&#039;re now ready to add support for your new filetype, just click &#039;&#039;&#039;Add&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET9.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The filetype is displayed in the tag support list on the WMPTSE propery page&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET10.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15572</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15572"/>
		<updated>2006-11-25T15:20:58Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll and click &#039;&#039;&#039;open&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), &lt;br /&gt;
 FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API &lt;br /&gt;
 function name WMPTSE will search. &lt;br /&gt;
 WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You&#039;re now ready to add support for your new filetype, just click &#039;&#039;&#039;Add&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET9.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The filetype is displayed in the tag support list on the WMPTSE propery page&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET10.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET10.png&amp;diff=15571</id>
		<title>File:WMPTSE2 ET10.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET10.png&amp;diff=15571"/>
		<updated>2006-11-25T15:20:36Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE showing the support for APE tagged &amp;#039;pnge&amp;#039; files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] showing the support for APE tagged &#039;pnge&#039; files&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15570</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15570"/>
		<updated>2006-11-25T15:02:29Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll and click &#039;&#039;&#039;open&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), &lt;br /&gt;
 FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API &lt;br /&gt;
 function name WMPTSE will search. &lt;br /&gt;
 WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You&#039;re now ready to add support for your new filetype, just click &#039;&#039;&#039;Add&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET9.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15569</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15569"/>
		<updated>2006-11-25T15:02:01Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll and click &#039;&#039;&#039;open&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), &lt;br /&gt;
 FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API &lt;br /&gt;
 function name WMPTSE will search. &lt;br /&gt;
 WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You&#039;re now ready to add support for your new filetype&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET9.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET9.png&amp;diff=15568</id>
		<title>File:WMPTSE2 ET9.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET9.png&amp;diff=15568"/>
		<updated>2006-11-25T15:00:32Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE ready to add support for APE tagging in png files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] ready to add support for APE tagging in png files&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15567</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15567"/>
		<updated>2006-11-25T14:59:57Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll.&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), &lt;br /&gt;
 FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API &lt;br /&gt;
 function name WMPTSE will search. &lt;br /&gt;
 WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15566</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15566"/>
		<updated>2006-11-25T14:58:48Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* After agreeing to reboot WMP, click on the &#039;&#039;&#039;...&#039;&#039;&#039; button, at the end of the &#039;Tag Support DLL file path&#039; line&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET6.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now is an important part, you have to choose the tag support DLL to use. &lt;br /&gt;
First, browse the directories where the tag support dll is stored. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET7.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, choose the right tag support dll.&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET8.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 By default, [[WMPTSE]] is distributed with support for APE (APETagSupport.dll), MPEG4 (MPEG4TagSupport.dll), FLAC (FLACTagSupport.dll) and Vorbis (VorbisTagSupport.dll).&lt;br /&gt;
 [[WMPTSE]] will only accept dll which support [[WMPTSE API]]. &lt;br /&gt;
 More preciselly, by choosing the tag type in the third step of this tutorial, you have fixed the tag support API function name WMPTSE will search. WMPTSE will alert you if the dll is not compatible with the tag support you choose.&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET7.png&amp;diff=15565</id>
		<title>File:WMPTSE2 ET7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET7.png&amp;diff=15565"/>
		<updated>2006-11-25T14:56:40Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE tag support dll file browsing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] tag support dll file browsing&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET8.png&amp;diff=15564</id>
		<title>File:WMPTSE2 ET8.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET8.png&amp;diff=15564"/>
		<updated>2006-11-25T14:56:00Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] tag support dll file choosing APETagSupport.dll&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET8.png&amp;diff=15563</id>
		<title>File:WMPTSE2 ET8.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET8.png&amp;diff=15563"/>
		<updated>2006-11-25T14:51:24Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE tag support dll file browsing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] tag support dll file browsing&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET6.png&amp;diff=15562</id>
		<title>File:WMPTSE2 ET6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET6.png&amp;diff=15562"/>
		<updated>2006-11-25T14:49:31Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE Add support page, clicking on the tag support dll file path button&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] Add support page, clicking on the tag support dll file path button&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15561</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15561"/>
		<updated>2006-11-25T14:48:18Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the filetype is not available for normal user, WMPTSE ask to confirm adding support for normal users &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET5.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET5.png&amp;diff=15560</id>
		<title>File:WMPTSE2 ET5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET5.png&amp;diff=15560"/>
		<updated>2006-11-25T14:47:58Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE asking for a filetype &amp;#039;user-ownabillity&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] asking for a filetype &#039;user-ownabillity&#039;&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15559</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15559"/>
		<updated>2006-11-25T14:46:02Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* We want to be sure that WMP will support our filetype, so we click on &#039;&#039;&#039;Check support&#039;&#039;&#039;&lt;br /&gt;
If the filetype is not already supported by the Media Library, WMPTSE ask to confirm adding it&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET4.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET4.png&amp;diff=15558</id>
		<title>File:WMPTSE2 ET4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET4.png&amp;diff=15558"/>
		<updated>2006-11-25T14:43:43Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE Asking to confirm Media Library support for a filetype&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] Asking to confirm Media Library support for a filetype&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15557</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15557"/>
		<updated>2006-11-25T14:42:33Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choose the tag type to add in the list (here we choose &#039;&#039;&#039;APE&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Type filetype (just the extension) to add support to (here we type &#039;&#039;&#039;png&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET3.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET3.png&amp;diff=15556</id>
		<title>File:WMPTSE2 ET3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET3.png&amp;diff=15556"/>
		<updated>2006-11-25T14:41:22Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE Add support page with APE tag support for png filetype&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] Add support page with APE tag support for png filetype&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15555</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15555"/>
		<updated>2006-11-25T14:40:31Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;APE&#039;&#039;&#039; in the tag type list&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET2.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET2.png&amp;diff=15554</id>
		<title>File:WMPTSE2 ET2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET2.png&amp;diff=15554"/>
		<updated>2006-11-25T14:39:45Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE Add support page with APE tag selected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] Add support page with APE tag selected&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15553</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15553"/>
		<updated>2006-11-25T14:37:31Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button, the &amp;quot;Add Tag support&amp;quot; propery page is displayed :&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:WMPTSE2_ET1.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET1.png&amp;diff=15552</id>
		<title>File:WMPTSE2 ET1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:WMPTSE2_ET1.png&amp;diff=15552"/>
		<updated>2006-11-25T14:35:58Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: WMPTSE Add support page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[WMPTSE]] Add support page&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15515</id>
		<title>WMPTSE - How to add support for a filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_-_How_to_add_support_for_a_filetype&amp;diff=15515"/>
		<updated>2006-11-23T23:18:53Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://www.microsoft.com/windows/windowsmedia/default.mspx Windows Media Player &amp;gt;v9.0]&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
* This guide assumes that you have already downloaded and installed Windows Media Player and WMPTSE.&lt;br /&gt;
&lt;br /&gt;
* This guide pictures are taken from WMP v9.0 but are valid for newer version.&lt;br /&gt;
&lt;br /&gt;
* In this guide, we will be adding an APEv2 tagging to our MediaLibrary .png files (why not...?).&lt;br /&gt;
 &lt;br /&gt;
The png format being a container format, our tag binary data will not be interpreted by the png readers, saving us the trouble.&lt;br /&gt;
&lt;br /&gt;
But &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;beware&amp;lt;/font&amp;gt; if you add tagging support for non-container file types (.txt, .bin, .dat, etc...), you&#039;ll end up with a &#039;&#039;corrupted&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Launch Windows Media Player.&lt;br /&gt;
&lt;br /&gt;
* Display the WMPTSE property box (see [[WMPTSE - How to change the plug-in properties]])&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Add Support&#039;&#039;&#039; button&lt;br /&gt;
&#039;&#039;to complete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[WMPTSE]]&lt;br /&gt;
* [[WMPTSE - How to change the plug-in properties]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:WMPTSE Guides]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15499</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15499"/>
		<updated>2006-11-21T13:53:37Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Example Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (APE, Vorbis, MPEG4 for example). &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures (even if they are empty). If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simple for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			WriteStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And the nice header to go with it&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.h : &lt;br /&gt;
 //		Handler header for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #ifndef		STING_TAG_SUPPORT_H&lt;br /&gt;
 #define		STING_TAG_SUPPORT_H&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	#define		WIN32_LEAN_AND_MEAN&lt;br /&gt;
 	#define		UNICODE&lt;br /&gt;
 	#include	&amp;lt;windows.h&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	#include	&amp;quot;WMPTSE.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	#ifdef		STING_TAGSUPPORT_C&lt;br /&gt;
 		&lt;br /&gt;
 	&lt;br /&gt;
 	#define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API		__declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API		&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#else&lt;br /&gt;
 &lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API		extern __declspec( dllimport )&lt;br /&gt;
 		#elif		defined( _EXPORTDLL )&lt;br /&gt;
 			#define		STINGTAG_API		extern __declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API		extern&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#endif &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	//&lt;br /&gt;
 	// TODO : add your exportable function declaration here&lt;br /&gt;
 	//&lt;br /&gt;
 	//	WMPTSE TagSupport API&lt;br /&gt;
 	BOOL STINGTAG_API		ReadStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						METATAG *	pMetaTag &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 	BOOL STINGTAG_API		WriteStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						TAGITEM		tagiChangedItem &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #endif		STING_TAG_SUPPORT_H&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15498</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15498"/>
		<updated>2006-11-21T13:52:47Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Example Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (APE, Vorbis, MPEG4 for example). &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures (even if they are empty). If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simple for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			WriteStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And the nice header to go with it&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.h : &lt;br /&gt;
 //		Handler header for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #ifndef		STING_TAG_SUPPORT_H&lt;br /&gt;
 #define		STING_TAG_SUPPORT_H&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	#define		WIN32_LEAN_AND_MEAN&lt;br /&gt;
 	#define		UNICODE&lt;br /&gt;
 	#include	&amp;lt;windows.h&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	#include	&amp;quot;WMPTSE.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	#ifdef		STING_TAGSUPPORT_C&lt;br /&gt;
 		&lt;br /&gt;
 	&lt;br /&gt;
 	#define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					__declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#else&lt;br /&gt;
 &lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllimport )&lt;br /&gt;
 		#elif		defined( _EXPORTDLL )&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					extern&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#endif &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	//&lt;br /&gt;
 	// TODO : add your exportable function declaration here&lt;br /&gt;
 	//&lt;br /&gt;
 	//	WMPTSE TagSupport API&lt;br /&gt;
 	BOOL STINGTAG_API		ReadStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						METATAG *	pMetaTag &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 	BOOL STINGTAG_API		WriteStingTag&lt;br /&gt;
 					( &lt;br /&gt;
 						LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 						TAGITEM		tagiChangedItem &lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #endif		STING_TAG_SUPPORT_H&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15497</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15497"/>
		<updated>2006-11-21T13:51:58Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Example Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (APE, Vorbis, MPEG4 for example). &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures (even if they are empty). If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simple for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			WriteStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And the nice header to go with it&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.h : &lt;br /&gt;
 //		Handler header for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #ifndef		STING_TAG_SUPPORT_H&lt;br /&gt;
 #define		STING_TAG_SUPPORT_H&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	#define		WIN32_LEAN_AND_MEAN&lt;br /&gt;
 	#define		UNICODE&lt;br /&gt;
 	#include	&amp;lt;windows.h&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	#include	&amp;quot;WMPTSE.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	#ifdef		STING_TAGSUPPORT_C&lt;br /&gt;
 		&lt;br /&gt;
 	&lt;br /&gt;
 	#define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					__declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#else&lt;br /&gt;
 &lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllimport )&lt;br /&gt;
 		#elif		defined( _EXPORTDLL )&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					extern&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#endif &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	//&lt;br /&gt;
 	// TODO : add your exportable function declaration here&lt;br /&gt;
 	//&lt;br /&gt;
 	//	WMPTSE TagSupport API&lt;br /&gt;
 	BOOL STINGTAG_API		ReadStingTag&lt;br /&gt;
 											( &lt;br /&gt;
 												LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 												METATAG *	pMetaTag &lt;br /&gt;
 											);&lt;br /&gt;
 &lt;br /&gt;
 	BOOL STINGTAG_API		WriteStingTag&lt;br /&gt;
 											( &lt;br /&gt;
 												LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 												TAGITEM		tagiChangedItem &lt;br /&gt;
 											);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #endif		STING_TAG_SUPPORT_H&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15496</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15496"/>
		<updated>2006-11-21T13:50:41Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Example Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (APE, Vorbis, MPEG4 for example). &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures (even if they are empty). If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simple for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			WriteStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And the nice header to go with it&lt;br /&gt;
&lt;br /&gt;
 #ifndef		STING_TAG_SUPPORT_H&lt;br /&gt;
 #define		STING_TAG_SUPPORT_H&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	#define		WIN32_LEAN_AND_MEAN&lt;br /&gt;
 	#define		UNICODE&lt;br /&gt;
 	#include	&amp;lt;windows.h&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	#include	&amp;quot;WMPTSE.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	#ifdef		STING_TAGSUPPORT_C&lt;br /&gt;
 		&lt;br /&gt;
 	&lt;br /&gt;
 	#define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
	#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					__declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#else&lt;br /&gt;
 &lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllimport )&lt;br /&gt;
 		#elif		defined( _EXPORTDLL )&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					extern&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#endif &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	//&lt;br /&gt;
 	// TODO : add your exportable function declaration here&lt;br /&gt;
 	//&lt;br /&gt;
 	//	WMPTSE TagSupport API&lt;br /&gt;
 	BOOL STINGTAG_API		ReadStingTag&lt;br /&gt;
 											( &lt;br /&gt;
 												LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 												METATAG *	pMetaTag &lt;br /&gt;
 											);&lt;br /&gt;
 &lt;br /&gt;
 	BOOL STINGTAG_API		WriteStingTag&lt;br /&gt;
 											( &lt;br /&gt;
 												LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 												TAGITEM		tagiChangedItem &lt;br /&gt;
 											);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #endif		STING_TAG_SUPPORT_H&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15495</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15495"/>
		<updated>2006-11-21T13:49:29Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Example Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (APE, Vorbis, MPEG4 for example). &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures (even if they are empty). If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simple for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL STINGTAG_API			WriteStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And the nice header to go with it&lt;br /&gt;
&lt;br /&gt;
 #ifndef		STING_TAG_SUPPORT_H&lt;br /&gt;
 #define		STING_TAG_SUPPORT_H&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	#define		WIN32_LEAN_AND_MEAN&lt;br /&gt;
 	#define		UNICODE&lt;br /&gt;
 	#include	&amp;lt;windows.h&amp;gt;&lt;br /&gt;
 	&lt;br /&gt;
 	#include	&amp;quot;WMPTSE.h&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 	#ifdef		STING_TAGSUPPORT_C&lt;br /&gt;
 		&lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					__declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#else&lt;br /&gt;
 &lt;br /&gt;
 		#ifdef		_USRDLL&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllimport )&lt;br /&gt;
 		#elif		defined( _EXPORTDLL )&lt;br /&gt;
 			#define		STINGTAG_API					extern __declspec( dllexport )&lt;br /&gt;
 		#else&lt;br /&gt;
 			#define		STINGTAG_API					extern&lt;br /&gt;
 		#endif&lt;br /&gt;
 	&lt;br /&gt;
 	#endif &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	//&lt;br /&gt;
 	// TODO : add your exportable function declaration here&lt;br /&gt;
 	//&lt;br /&gt;
 	//	WMPTSE TagSupport API&lt;br /&gt;
 	BOOL STINGTAG_API		ReadStingTag&lt;br /&gt;
 											( &lt;br /&gt;
 												LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 												METATAG *	pMetaTag &lt;br /&gt;
 											);&lt;br /&gt;
 &lt;br /&gt;
 	BOOL STINGTAG_API		WriteStingTag&lt;br /&gt;
 											( &lt;br /&gt;
 												LPTSTR		lpstrFileFullPath, &lt;br /&gt;
 												TAGITEM		tagiChangedItem &lt;br /&gt;
 											);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #endif		STING_TAG_SUPPORT_H&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15494</id>
		<title>WMPTSE API</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=WMPTSE_API&amp;diff=15494"/>
		<updated>2006-11-21T13:44:29Z</updated>

		<summary type="html">&lt;p&gt;MaB fr: /* Example Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WMPTSE API is the interface between the [[WMPTSE]] plug-in and its &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;tag support dll&#039;&#039;&#039; give WMPTSE the ability to add support of a tag format in Windows Media Player. &lt;br /&gt;
With the this &amp;quot;tag support dll&amp;quot; properly installed, files tagged with its format are readable inside WMP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
Every WMPTSE API application must export two function (c standard call):&lt;br /&gt;
 &lt;br /&gt;
 BOOL Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, METATAG * pMetaTag )&lt;br /&gt;
 &lt;br /&gt;
 BOOL Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag( LPTSTR lpstrFileFullPath, TAGITEM tagiChangedItem )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; will be the name of the corresponding tag format (APE, Vorbis, MPEG4 for example). &lt;br /&gt;
The complete function names will be search by WMPTSE during the load process. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The boolean return value is important.&lt;br /&gt;
&lt;br /&gt;
For the read function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has find the correct tag format structures (even if they are empty). If the value is TRUE, WMPTSE will stop searching for compatible tag format for this file (yes, a file can be multi-tagged). If the value is FALSE, WMPTSE will continue searching in its compatible tag format list.&lt;br /&gt;
&lt;br /&gt;
For the write function, it tells WMPTSE if the &amp;quot;tag support dll&amp;quot; has correctly write the new value. If this is true, WMPTSE will continue using this &amp;quot;tag support dll&amp;quot; for this filetype. If this value is false, WMPTSE may unload the &amp;quot;tag support dll&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These function types are defined as FP_TAGREAD (read), FP_TAGWRITE (write) in &amp;quot;WMPTSE.h&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : All types and definition are declared in WMPTSE.h.&lt;br /&gt;
		It is simple for developper to include it at first.&lt;br /&gt;
&lt;br /&gt;
For reading purpose, we will expose the necessary structure definition here.&lt;br /&gt;
&lt;br /&gt;
 struct stTagItem											&lt;br /&gt;
 {&lt;br /&gt;
 	char *	MetaTagWMPKey;	/** the MediaLibrary attribute&#039;s name */&lt;br /&gt;
 	LPTSTR	MetaTagValue;	/** the value to set */&lt;br /&gt;
 };&lt;br /&gt;
 #define TAGITEM struct stTagItem		&lt;br /&gt;
 typedef struct stTagItem * LPTAGITEM;				&lt;br /&gt;
&lt;br /&gt;
 struct stMetaTag&lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiNbItems;	/** number of list tags */&lt;br /&gt;
 	LPTAGITEM tagiItems;	/** pointer to array of pointer to tag items */&lt;br /&gt;
 };&lt;br /&gt;
 #define METATAG struct stMetaTag&lt;br /&gt;
 typedef struct stMetaTag * LPMETATAG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Source Code==&lt;br /&gt;
In this example, we will add support for a weird tag format : the &amp;quot;Sting fan&amp;quot; format.&lt;br /&gt;
In fact, every file considered tagged with this format will return &amp;quot;Sting&amp;quot; as Album Artist. The sign of a true fan :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : We will not create the write function as it is a &amp;quot;read only&amp;quot; tag format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see the documented code :&lt;br /&gt;
&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 //&lt;br /&gt;
 // StingTagSupport.c : &lt;br /&gt;
 //		Handler for Sting tags support&lt;br /&gt;
 //&lt;br /&gt;
 // Copyxxx (\C) 200x - &lt;br /&gt;
 //	&lt;br /&gt;
 /////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
 #define		STING_TAGSUPPORT_C&lt;br /&gt;
 #include	&amp;quot;StingTagSupport.h&amp;quot;&lt;br /&gt;
 #undef		STING_TAGSUPPORT_C&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #define	STING_FAN_ARTIST	TCHAR( &amp;quot;Sting&amp;quot; )&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 BOOL FLACTAG_API			ReadStingTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	METATAG				*	pMetaTag &lt;br /&gt;
 ) &lt;br /&gt;
 {&lt;br /&gt;
 	UINT	uiFilePathSize;&lt;br /&gt;
 	LPSTR	lpcFileFullPath;&lt;br /&gt;
 	LPVOID	lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//First we get the filepath length before retrieving it&lt;br /&gt;
 	uiFilePathSize = WideCharToMultiByte&lt;br /&gt;
 		(&lt;br /&gt;
 			CP_ACP,&lt;br /&gt;
 			0,&lt;br /&gt;
 			lpstrFileFullPath,&lt;br /&gt;
 			-1,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			0,&lt;br /&gt;
 			NULL,&lt;br /&gt;
 			NULL&lt;br /&gt;
 		);&lt;br /&gt;
 	//then we alloc on the process Heap the memory&lt;br /&gt;
 	lpcFileFullPath = ( LPSTR ) HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			uiFilePathSize&lt;br /&gt;
 		);&lt;br /&gt;
 	//and we retrieve the filepath&lt;br /&gt;
 	WideCharToMultiByte&lt;br /&gt;
 	(&lt;br /&gt;
 		CP_ACP,&lt;br /&gt;
 		0,&lt;br /&gt;
 		lpstrFileFullPath,&lt;br /&gt;
 		-1,&lt;br /&gt;
 		lpcFileFullPath,&lt;br /&gt;
 		uiFilePathSize,&lt;br /&gt;
 		NULL,&lt;br /&gt;
 		NULL&lt;br /&gt;
 	); &lt;br /&gt;
 	&lt;br /&gt;
 	//now, we fill the MetaTag structure with start values&lt;br /&gt;
 	//at start we don&#039;t have any Tags..&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems = 0;&lt;br /&gt;
 	//at start we need to have a &amp;quot;root&amp;quot; TAGITEM table so we alloc it&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = ( LPTAGITEM )HeapAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			sizeof( TAGITEM )&lt;br /&gt;
 		);&lt;br /&gt;
 	&lt;br /&gt;
 	//We will handles just Album Artist (it should be enough for an example)&lt;br /&gt;
 	//first we resize our previous TAGITEM table&lt;br /&gt;
 	lpvTempPtr = ( LPTAGITEM )HeapReAlloc&lt;br /&gt;
 		( &lt;br /&gt;
 			GetProcessHeap(), &lt;br /&gt;
 			HEAP_ZERO_MEMORY, &lt;br /&gt;
 			pMetaTag-&amp;gt;tagiItems,&lt;br /&gt;
 			sizeof( TAGITEM ) * ( pMetaTag-&amp;gt;uiNbItems + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	if( lpvTempPtr == NULL )&lt;br /&gt;
 	// we handle a worse case scenario&lt;br /&gt;
 		return FALSE;&lt;br /&gt;
 	&lt;br /&gt;
 	//we replace with the new pointer (if it has changed)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems = lpvTempPtr;&lt;br /&gt;
 	&lt;br /&gt;
 	//we alloc the new string to store our tag value&lt;br /&gt;
 	//it will be freed by WMPTSE, so be sure to have it alloced yourself.&lt;br /&gt;
 	//(no static string...)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue = HeapAlloc&lt;br /&gt;
 		(&lt;br /&gt;
 			GetProcessHeap(),&lt;br /&gt;
 			HEAP_ZERO_MEMORY,&lt;br /&gt;
 			sizeof( TCHAR ) * ( lstrlen( STING_FAN_ARTIST ) + 1 )&lt;br /&gt;
 		);&lt;br /&gt;
 	//we copy the tag value&lt;br /&gt;
 	lstrcpy( pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagValue, STING_FAN_ARTIST );&lt;br /&gt;
 	//we give WMPTSE the right tag Key (it must be a WMP_TAG_ string, see WMPTSE.h)&lt;br /&gt;
 	pMetaTag-&amp;gt;tagiItems[ pMetaTag-&amp;gt;uiNbItems ].MetaTagWMPKey = WMP_TAG_ALBUMARTIST;&lt;br /&gt;
 	//we increase our tagitem number&lt;br /&gt;
 	pMetaTag-&amp;gt;uiNbItems++;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	//all is finished, we can release the filepath string	&lt;br /&gt;
 	HeapFree( GetProcessHeap(), 0, lpcFileFullPath );&lt;br /&gt;
 	&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 BOOL FLACTAG_API			WriteFLACTag&lt;br /&gt;
 ( &lt;br /&gt;
 	LPTSTR					lpstrFileFullPath, &lt;br /&gt;
 	TAGITEM					tagiChangedItem &lt;br /&gt;
 )&lt;br /&gt;
 {&lt;br /&gt;
 	return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
To be effective, a &amp;quot;tag support dll&amp;quot; must be correctly installed in WMPTSE.&lt;br /&gt;
&lt;br /&gt;
You have two choice to install a &amp;quot;tag support dll&amp;quot; :&lt;br /&gt;
* use the WMPTSE tag support wizard (see [[WMPTSE - How to add support for a tag format]])&lt;br /&gt;
* edit the registry yourself :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; : In this guide, we will not expose the registry editing for complete file type support in Windows (MIME Types, Media Library Support, etc...). Please refer to Microsoft Windows Media Player documentation for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On load, [[WMPTSE]] browse the &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE&#039;&#039;&#039; registry key.&lt;br /&gt;
&lt;br /&gt;
Each subkey it finds will be consider a &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition.&lt;br /&gt;
&lt;br /&gt;
Inside each subkey (or &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt; definition), WMPTSE browse for file type support.&lt;br /&gt;
&lt;br /&gt;
Each string in &#039;&#039;&#039;HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; describe the file type to support (registry string name) and the path to the &amp;quot;tag support dll&amp;quot; to load (registry string value).&lt;br /&gt;
&lt;br /&gt;
After reading all file types definitions, [[WMPTSE]] loads each &amp;quot;tag support dll&amp;quot; and try to get the &#039;&#039;&#039;Read&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; and &#039;&#039;&#039;Write&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;&amp;lt;TagFormat&amp;gt;&amp;lt;/font&amp;gt;Tag&#039;&#039;&#039; functions.&lt;br /&gt;
&lt;br /&gt;
For each dll, If one of those two functions doesn&#039;t exist, the dll is considered non-WMPTSE API compatible and is unloaded.&lt;br /&gt;
&lt;br /&gt;
It those two functions exist, the dll is registered as a &amp;quot;tag support dll&amp;quot; for the registered file type.&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>MaB fr</name></author>
	</entry>
</feed>