# Using win32ole to access the Flash ExternalInterface API?

**URL:** <https://www.ruby-forum.com/t/using-win32ole-to-access-the-flash-externalinterface-api/87128>\
**Category:** Ruby\
**Created:** [February 28, 2007, 12:48pm UTC](https://www.ruby-forum.com/t/using-win32ole-to-access-the-flash-externalinterface-api/87128 "2007-02-28T12:48:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dracos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ea666f/32.png) [@dracos](https://www.ruby-forum.com/u/dracos)\
**Post date:** [February 28, 2007, 12:48pm UTC](https://www.ruby-forum.com/t/using-win32ole-to-access-the-flash-externalinterface-api/87128/1 "2007-02-28T12:48:29Z")

</div>

Hi

I am working on a master thesis at Norwegian University of Science and  
Technology, and I am trying to create a open source framework for  
functional testing of Flex applications. And I want to do it in Ruby.

I am playing with the ExternalInterface API for Flash applications. With  
this API it is possible to define methods, which will be visible through  
activex.

This is shown in the example in the link below  
[http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs\_Book\_Parts&file=19\_External\_Interface\_178\_5.html](http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=19_External_Interface_178_5.html)

This example uses C#, but I was thinking it should be possible with the  
use of win32ole.

I am able to reach the movie object with win32ole, but I don’t know how  
to be able to call the methods created in the Flex application.

I am not that familiar with the win32ole, but can it work as a activex  
control, or do I need something else?

Thank you for any advice!

---

<div class="post-metadata">

**Author:** ![dracos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ea666f/32.png) [@dracos](https://www.ruby-forum.com/u/dracos)\
**Post date:** [March 1, 2007, 4:00pm UTC](https://www.ruby-forum.com/t/using-win32ole-to-access-the-flash-externalinterface-api/87128/2 "2007-03-01T16:00:43Z")

</div>

It’s very simple really, you just instantiate a Ruby object to the  
WIN32OLE interface of the native API, then call the native API’s  
methods as methods of the object you’ve just created. Example:

require ‘win32ole’

param1 = 0  
param2 = ‘test’

interface = WIN32OLE.new(‘registered\_OLE\_API\_here’)  
interface.NativeMethodReqIntAndString(param1, param2)

nativeObj = interface.ReturnSomeObject  
nativeObj.ObjectNativeMethod

interface.NativeMethodReqNativeObj(nativeObj)

This is a trivial example, but shows how you can instantiate and use  
native objects using the win32ole interface, and how you can pass them  
back to the native API as method parameters.

Hope this helps,  
–Kris
