<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>F-IN-BOX Blog</title>
	<link>http://f-in-box.com/blog</link>
	<description>F-IN-BOX News, Tips and Tricks</description>
	<pubDate>Wed, 02 Apr 2008 10:42:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>F-IN-BOX DLL Edition 3.2.1</title>
		<link>http://f-in-box.com/blog/f-in-box-dll-edition-321/</link>
		<comments>http://f-in-box.com/blog/f-in-box-dll-edition-321/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 10:42:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-dll-edition-321/</guid>
		<description><![CDATA[FIXED:f-in-box crashed when DEP enabled on Windows Vista, Flash 9 is installed and Flex-generated movie is loading.
]]></description>
			<content:encoded><![CDATA[<p>FIXED:f-in-box crashed when DEP enabled on Windows Vista, Flash 9 is installed and Flex-generated movie is loading.</p>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-dll-edition-321/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F-IN-BOX Delphi Edition 3.3</title>
		<link>http://f-in-box.com/blog/f-in-box-delphi-edition-33/</link>
		<comments>http://f-in-box.com/blog/f-in-box-delphi-edition-33/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 10:38:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[F-IN-BOX Delphi Edition Releases]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-delphi-edition-33/</guid>
		<description><![CDATA[
Perfomance (in semitransparent mode) has improved.
FIXED:f-in-box crashed when DEP enabled on Windows Vista, Flash 9 is installed and Flex-generated movie is loading.

]]></description>
			<content:encoded><![CDATA[<ol>
<li>Perfomance (in semitransparent mode) has improved.</li>
<li>FIXED:f-in-box crashed when DEP enabled on Windows Vista, Flash 9 is installed and Flex-generated movie is loading.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-delphi-edition-33/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F-IN-BOX .NET Edition 3.1 is ready</title>
		<link>http://f-in-box.com/blog/f-in-box-net-edition-31-is-ready/</link>
		<comments>http://f-in-box.com/blog/f-in-box-net-edition-31-is-ready/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 19:28:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[F-IN-BOX .Net Edition Releases]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-net-edition-31-is-ready/</guid>
		<description><![CDATA[
Performance in transparent mode has improved
AxCode implements IDisposable
If TransparentMode = true, f_in_box__control.GetBitmap returns a bitmap with alpha component

]]></description>
			<content:encoded><![CDATA[<ul>
<li>Performance in transparent mode has improved</li>
<li>AxCode implements IDisposable</li>
<li>If TransparentMode = true, f_in_box__control.GetBitmap returns a bitmap with alpha component</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-net-edition-31-is-ready/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F-IN-BOX DLL Edition 3.2 is ready</title>
		<link>http://f-in-box.com/blog/f-in-box-dll-edition-32-is-ready/</link>
		<comments>http://f-in-box.com/blog/f-in-box-dll-edition-32-is-ready/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 23:40:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[F-IN-BOX DLL Edition Releases]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-dll-edition-32-is-ready/</guid>
		<description><![CDATA[
The repainting performance in the transparent mode has dramatically improved
Fullscreen mode is supported: AllowFullscreen. Read more about fullscreen mode here: http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html
New function: FPC_QueryInterface
New function: FPC_GetHFPC

]]></description>
			<content:encoded><![CDATA[<ul>
<li>The repainting performance in the transparent mode has dramatically improved</li>
<li>Fullscreen mode is supported: <a TARGET="_blank" HREF="/dll/help/index/native/properties/property_allowfullscreen.html">AllowFullscreen</a>. Read more about fullscreen mode here: <a href = "http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html" target = "_blank">http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html</a></li>
<li>New function: <a TARGET="_blank" HREF="/dll/help/index/extension/functions/function_fpc_queryinterface.html">FPC_QueryInterface</a></li>
<li>New function: <a TARGET="_blank" HREF="/dll/help/index/extension/functions/function_fpc_gethfpc.html">FPC_GetHFPC</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-dll-edition-32-is-ready/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F-IN-BOX Delphi Edition 3.2</title>
		<link>http://f-in-box.com/blog/f-in-box-delphi-edition-32/</link>
		<comments>http://f-in-box.com/blog/f-in-box-delphi-edition-32/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 21:46:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[F-IN-BOX Delphi Edition Releases]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-delphi-edition-32/</guid>
		<description><![CDATA[
Sound capturing (see new example Sample9_SoundRecording that records flash sounds to a WAV file):

SetAudioOutputOpenHandler
SetAudioOutputWriteHandler
SetAudioOutputCloseHandler


New event OnUpdateRect

Download latest version
]]></description>
			<content:encoded><![CDATA[<ul>
<li>Sound capturing (see new example Sample9_SoundRecording that records flash sounds to a WAV file):
<ul>
<li><a HREF="http://www.f-in-box.com/delphi/help/index/tflashplayercontrol/globals/global_setaudiooutputopenhandler.html">SetAudioOutputOpenHandler</a></li>
<li><a HREF="http://www.f-in-box.com/delphi/help/index/tflashplayercontrol/globals/global_setaudiooutputwritehandler.html">SetAudioOutputWriteHandler</a></li>
<li><a HREF="http://www.f-in-box.com/delphi/help/index/tflashplayercontrol/globals/global_setaudiooutputclosehandler.html">SetAudioOutputCloseHandler</a></li>
</ul>
</li>
<li>New event <a HREF="http://www.f-in-box.com/delphi/help/index/tflashplayercontrol/events/extension_events/event_onupdaterect.html">OnUpdateRect</a></li>
</ul>
<p><a HREF="http://www.f-in-box.com/download/FlashPlayerControlForDelphi.zip">Download latest version</a></p>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-delphi-edition-32/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F-IN-BOX Delphi Edition 3.1.2</title>
		<link>http://f-in-box.com/blog/f-in-box-delphi-edition-312/</link>
		<comments>http://f-in-box.com/blog/f-in-box-delphi-edition-312/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 23:48:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[F-IN-BOX Delphi Edition Releases]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-delphi-edition-312/</guid>
		<description><![CDATA[
F-IN-BOX is UNICODE now: all events and so on
OnPreProcessURL event
Builder C++ 2006 is supported

]]></description>
			<content:encoded><![CDATA[<ul>
<li>F-IN-BOX is UNICODE now: all events and so on</li>
<li><a HREF="http://f-in-box.com/delphi/help/index/tflashplayercontrol/events/extension_events/event_onpreprocessurl.html">OnPreProcessURL event</a></li>
<li>Builder C++ 2006 is supported</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-delphi-edition-312/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F-IN-BOX DLL Edition 3.1 is ready</title>
		<link>http://f-in-box.com/blog/f-in-box-dll-edition-31-is-ready/</link>
		<comments>http://f-in-box.com/blog/f-in-box-dll-edition-31-is-ready/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 23:00:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[F-IN-BOX DLL Edition Releases]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-dll-edition-31-is-ready/</guid>
		<description><![CDATA[What&#8217;s new

New notification FPCN_PAINT_STAGE. It&#8217;s useful when you need to modify movie background or paint something over already painted movie. With FPCN_PAINT_STAGE you can simulate transparency for f-in-box created as a child control. See sample Samples\MFC\Sample09_TransparentControl
Sound capturing. It demonstrates how to save flash sound as a WAV file. See function FPC_SetSoundListener
Also see sample Samples\MFC\Sample10_SoundRecorder.
URL preprocessing. [...]]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s new</p>
<ul>
<li>New notification <a HREF="http://www.f-in-box.com/dll/help/index/extension/notifications/notification_fpcnpaintstage.html">FPCN_PAINT_STAGE</a>. It&#8217;s useful when you need to modify movie background or paint something over already painted movie. With FPCN_PAINT_STAGE you can simulate transparency for f-in-box created as a child control. See sample Samples\MFC\Sample09_TransparentControl</li>
<li>Sound capturing. It demonstrates how to save flash sound as a WAV file. See function <a HREF="http://www.f-in-box.com/dll/help/index/extension/functions/function_fpc_setsoundlistener.html">FPC_SetSoundListener</a><br />
Also see sample Samples\MFC\Sample10_SoundRecorder.</li>
<li>URL preprocessing. It&#8217;s useful when you need to replace an URL that flash uses. For example, a movie has link to something. When an user click to the link, your callback is called. You can cancel the loading or change URL. See function <a HREF="http://www.f-in-box.com/dll/help/index/extension/functions/function_fpc_setpreprocessurlhandler.html">FPC_SetPreProcessURLHandler</a></li>
</ul>
<p><a HREF="http://www.f-in-box.com/download/FlashPlayerControlDLL.zip">Click to download latest version</a></p>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-dll-edition-31-is-ready/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F-IN-BOX .Net Edition 3.0.11 is ready</title>
		<link>http://f-in-box.com/blog/f-in-box-net-edition-3011-is-ready/</link>
		<comments>http://f-in-box.com/blog/f-in-box-net-edition-3011-is-ready/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 22:43:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[F-IN-BOX .Net Edition Releases]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/f-in-box-net-edition-3011-is-ready/</guid>
		<description><![CDATA[What&#8217;s new:

New event OnPaintStage
Some samples are improved
New sample Sample9_TransparentControl
Help is improved

Bugfixes:

Problem with blocking the finalizer queue fixed

Click to download latest version
]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s new:</p>
<ul>
<li>New event <a HREF="http://f-in-box.com/dotnet/help/index/classes/flashplayercontrol/events/extension_events/event_onpaintstage.html">OnPaintStage</a></li>
<li>Some samples are improved</li>
<li>New sample Sample9_TransparentControl</li>
<li>Help is improved</li>
</ul>
<p>Bugfixes:</p>
<ul>
<li>Problem with blocking the finalizer queue fixed</li>
</ul>
<p><a HREF="http://f-in-box.com/download/FlashPlayerControlForDotNet.zip">Click to download latest version</a></p>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/f-in-box-net-edition-3011-is-ready/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to get a width and a height from an SWF</title>
		<link>http://f-in-box.com/blog/how-to-get-a-width-and-a-height-from-an-swf/</link>
		<comments>http://f-in-box.com/blog/how-to-get-a-width-and-a-height-from-an-swf/#comments</comments>
		<pubDate>Wed, 02 May 2007 10:16:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[SWF format]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/how-to-get-a-width-and-a-height-from-an-swf/</guid>
		<description><![CDATA[Many users ask me how to get dimensions of a movie. The answer is simple: just decode an SWF header. All Macromedia Flash (SWF) files begin with the following header (see SWF specification for more information):




Field
Type
Comment


Signature
UI8
Signature byte always &#8216;F&#8217;


Signature
UI8
Signature byte always &#8216;W&#8217;


Signature
UI8
Signature byte always &#8216;S&#8217;


Version
UI8
Single byte file version (e.g. 0&#215;04F for SWF 4)


FileLength
UI32
Length of entire [...]]]></description>
			<content:encoded><![CDATA[<p>Many users ask me how to get dimensions of a movie. The answer is simple: just decode an SWF header. All Macromedia Flash (SWF) files begin with the following header (see SWF specification for more information):</p>
<pre>
<table CLASS="">
<tbody>
<tr BGCOLOR="#cfcfcf">
<td CLASS="">Field</td>
<td CLASS="">Type</td>
<td CLASS="">Comment</td>
</tr>
<tr>
<td CLASS="">Signature</td>
<td CLASS="">UI8</td>
<td CLASS="">Signature byte always &#8216;F&#8217;</td>
</tr>
<tr>
<td CLASS="">Signature</td>
<td CLASS="">UI8</td>
<td CLASS="">Signature byte always &#8216;W&#8217;</td>
</tr>
<tr>
<td CLASS="">Signature</td>
<td CLASS="">UI8</td>
<td CLASS="">Signature byte always &#8216;S&#8217;</td>
</tr>
<tr>
<td CLASS="">Version</td>
<td CLASS="">UI8</td>
<td CLASS="">Single byte file version (e.g. 0&#215;04F for SWF 4)</td>
</tr>
<tr>
<td CLASS="">FileLength</td>
<td CLASS="">UI32</td>
<td CLASS="">Length of entire file in bytes</td>
</tr>
<tr>
<td CLASS="">FrameSize</td>
<td CLASS="">RECT</td>
<td CLASS="">Frame size in twips</td>
</tr>
<tr>
<td CLASS="">FrameRate</td>
<td CLASS="">UI16</td>
<td CLASS="">Frame delay in 8.8 fixed number of frames per second</td>
</tr>
<tr>
<td CLASS="">FrameCount</td>
<td CLASS="">UI16</td>
<td CLASS="">Total number of frames in movie</td>
</tr>
</tbody>
</table>
</pre>
<p>If an SWF file begins with &#8220;CWS&#8221;, the header is zipped. Unzip it. Use zlib, for example. The sample code:</p>
<pre>
SIZE GetFlashMovieSize(LPCTSTR szSWFPath)
{
	SIZE size = { 0 };
	HANDLE hFile = CreateFile(szSWFPath,
                                  GENERIC_READ,
                                  FILE_SHARE_READ,
                                  NULL,
                                  OPEN_EXISTING,
                                  0,
                                  NULL); 

	if (INVALID_HANDLE_VALUE != hFile)
	{
		DWORD dwNumberOfBytesRead; 

		// Read the first byte
		char chFirstByte;
		ReadFile(hFile,
                         (LPVOID)&amp;chFirstByte,
                         sizeof(chFirstByte),
                         &amp;dwNumberOfBytesRead,
                         NULL); 

		// Skip signature (3 bytes), version (1 byte) and file size (4 bytes)
		const DWORD dwOffset = 3 + 1 + 4;
		SetFilePointer(hFile, dwOffset, NULL, FILE_BEGIN); 

		char outbuffer[256]; 

		if (67 == chFirstByte)
			// Compressed
		{
			char buffer[256];
			DWORD dwNumberOfBytesRead;
			ReadFile(hFile,
                                 buffer,
                                 sizeof(buffer),
                                 &amp;dwNumberOfBytesRead,
                                 NULL); 

			z_stream stream = { 0 };
			stream.next_in = (Bytef*)buffer;
			stream.avail_in = 256;
			stream.next_out = (Bytef*)outbuffer;
			stream.avail_out = 256;
			inflateInit(&amp;stream); 

			inflate(&amp;stream, 1); 

			inflateEnd(&amp;stream);
		}
		else
		{
			DWORD dwNumberOfBytesRead;
			ReadFile(hFile,
                                 outbuffer,
                                 sizeof(outbuffer),
                                 &amp;dwNumberOfBytesRead,
                                 NULL);
		} 

		unsigned char nByte = outbuffer[0]; 

		// How many bits each number occupy
		unsigned char intBits = nByte &gt;&gt; 3; 

		int intTotalBits = intBits * 4 + 5;
		int intTotalBytes = (intTotalBits + 7) / 8; 

		unsigned char * pnBytes = new unsigned char [intTotalBytes];
		CopyMemory(pnBytes, outbuffer, min(intTotalBytes, sizeof(outbuffer))); 

		int intOffset = 5;
		int intXMin =
                    GetIntegerFromBits(pnBytes, intOffset, intBits) / 20;
		int intXMax =
                    GetIntegerFromBits(pnBytes, intOffset + intBits, intBits) / 20;
		int intYMin =
                    GetIntegerFromBits(pnBytes, intOffset + 2 * intBits, intBits) / 20;
		int intYMax =
                    GetIntegerFromBits(pnBytes, intOffset + 3 * intBits, intBits) / 20; 

		size.cx = intXMax - intXMin;
		size.cy = intYMax - intYMin; 

		delete[] pnBytes; 

		CloseHandle(hFile);
	} 

	return size;
} 

int GetIntegerFromBits(LPVOID lpData,
                       int intOffset,
                       int intLength)
{
	int intResult = 0;
	LPBYTE lpBytes = static_cast<lpbyte>(lpData); 

	int intBitIndex = 0;
	int intSign; 

	for (int intBitPos = intOffset;
	     intBitPos &lt; intOffset + intLength;
             intBitPos++, intBitIndex++)
	{
		int intByteIndex = intBitPos / 8;
		__int8 nByte = lpBytes[intByteIndex];
		int intLocalBitIndex = 7 - intBitPos % 8;
		int intBitValue = ((nByte &gt;&gt; intLocalBitIndex) &amp; 1); 

		if (0 == intBitIndex)
			intSign = 1 == intBitValue ? -1 : +1;
		else
		{
			intResult &lt;&lt;= 1;
			intResult += intBitValue;
		}
	} 

	intResult *= intSign; 

	return intResult;
}
</lpbyte></pre>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/how-to-get-a-width-and-a-height-from-an-swf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>We&#8217;ve opened the F-IN-BOX blog</title>
		<link>http://f-in-box.com/blog/weve-opened-the-f-in-box-blog/</link>
		<comments>http://f-in-box.com/blog/weve-opened-the-f-in-box-blog/#comments</comments>
		<pubDate>Tue, 01 May 2007 17:34:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://f-in-box.com/blog/weve-opened-the-f-in-box-blog/</guid>
		<description><![CDATA[F-IN-BOX has a big history. We have forum, support form, but we&#8217;ve decided to become more public. That&#8217;s why we are starting this blog. We are going to post news about new releases, tips and tricks, common tasks which you can solve with F-IN-BOX and so on here.
]]></description>
			<content:encoded><![CDATA[<p>F-IN-BOX has a big history. We have <a TARGET="blank" HREF="http://f-in-box.com/forum/">forum</a>, <a TARGET="blank" HREF="http://f-in-box.com/support.html">support form</a>, but we&#8217;ve decided to become more public. That&#8217;s why we are starting this blog. We are going to post news about new releases, tips and tricks, common tasks which you can solve with F-IN-BOX and so on here.</p>
]]></content:encoded>
			<wfw:commentRss>http://f-in-box.com/blog/weve-opened-the-f-in-box-blog/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
