 <p><strong>Update:</strong></p> <p>Just realized that I've misread your question as you are looking for methods defined via the Flex <a href="http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html" rel="nofollow noreferrer"><code>ExternalInterface class</code></a> rather than those of the <code>Shockwave ActiveX control</code> itself; I'm gonna keep my original answer below as it might still be helpful regarding <code>SWF</code> usage via C# in general.</p> <p>Concerning <code>ExternalInterface</code> I don't have an answer right now, but you might look into <a href="http://www.codeproject.com/KB/audio-video/flashexternalapi.aspx" rel="nofollow noreferrer">Fun with C# and the Flash Player 8 External API</a> to get an idea on how to use this API via C# in the first place. (Another helpful sample might be <a href="http://osflash.org/ext_howto" rel="nofollow noreferrer">Use External Interface of Flash 8 in Python and C# Applications</a>.)</p> <p>From what I'm reading in the former article there is likely no straight forward solution and the calling conventions via passing crafted <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=19_External_Interface_08.html#134555" rel="nofollow noreferrer">XML fragments</a> to <a href="http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html#call%28%29" rel="nofollow noreferrer"><code>CallFunction()</code></a> are somewhat quirky, still you should be able to translate Georges <a href="http://stackoverflow.com/questions/1353525/c-and-flash-communication/1353952#1353952">solution</a> to this in principle (as I said, it's likely not gonna be pretty ;)</p> <p>Good luck!</p> <hr> <p><strong>How to access a SWF from .NET via COM Interoperability:</strong></p> <p><a href="http://en.wikipedia.org/wiki/Swf" rel="nofollow noreferrer"><code>SWF</code></a> for Windows is implemented by means of the <a href="http://en.wikipedia.org/wiki/Flash_Player" rel="nofollow noreferrer">Adobe Flash Player</a> <a href="http://en.wikipedia.org/wiki/ActiveX_control#ActiveX_controls" rel="nofollow noreferrer">ActiveX control</a>, consequently you would use it from .NET via <a href="http://msdn.microsoft.com/en-us/library/ms172270.aspx" rel="nofollow noreferrer">COM Interoperability</a>.</p> <p>You can find a (legacy) article/sample regarding this on Adobes site, see <a href="http://www.adobe.com/devnet/flash/articles/stock_history.html" rel="nofollow noreferrer">Embedding Macromedia Flash Player in a C# Application to Display Stock Information</a> for an overview (please note the introductory note of the article regarding unavailability of the sample code), but see below.</p> <p><strong>More specifically</strong> you can find the initial steps you need to take to achieve your goal on another page of this article, see <a href="http://www.adobe.com/devnet/flash/articles/stock_history03.html" rel="nofollow noreferrer">Embedding and Communicating with the Macromedia Flash Player in C# Windows Applications</a> - in particular please follow the article/steps up to and including section <em>Making the Macromedia Flash Player ActiveX Control Available Within Visual Studio .NET</em>.</p> <p>Once you have completed the outlined steps to add the <code>Shockwave ActiveX control</code> to your toolbox and to a particular projects references you can simply double click this reference (named <code>ShockwaveFlashObjects</code> in Visual Studio 2008), which will open the <a href="http://msdn.microsoft.com/en-us/library/exy1facf(VS.80).aspx" rel="nofollow noreferrer">Visual Studio object browser</a> highlighting the <code>assembly Interop.ShockwaveFlashObjects</code>; then navigate down into the <code>namespace ShockwaveFlashObjects</code>, where you'll find, amongst others, the <code>interface IShockwaveFlash</code>, exposing (depending on your view filter) all its members, including the desired external <strong>methods with their respective C# signatures</strong>.</p>