Plugins (.Net): activex or .net control host


We have been looking at DOpus today and think it is very cool. We are a games developer and have experimented using DOpus as a central hub for launching some of our tools, eg kicking of asset builds from folders etc.

Is there anyway we can host a .net control within opus. for exmple if we click on one of our asset files it brings up an embedded property grid of that assets settings (which we write in .net). We already have lots of tools written in .net so it would be usefull to beable to host them.

On a similar note, is it possible to have tools appear on the context menu only for particular file types. for example, if i right click on one of our mesh files then the tool Mesh Edit appears on the menu, and if we click on a texture file, out Texture Edit tool appears. It would be really handy if we can configure the context menus based on certain file filters.


Opus already comes with an ActiveX plugin (that I wrote), although it doesn't provide every interface under the sun and thus unfortunately doesn't work with every single ActiveX control and ActiveDocument server.

If you've got an ActiveX control you can see if it works with the plugin by going to Preferences, Plugins and configuring the ActiveX Document plugin. You can then drag & drop a file onto the plugin's test/preview area and see if anything happens. If it does work then you just need to add the file's extension to the plugin's list.

In terms of native .Net stuff I guess you would have to write a DLL in a .Net language which implements the Opus viewer plugin API. I don't know enough about this aspect of .Net to be able to say how easy this will be but it would have to provide a native Win32 window handle back to Opus and then respond to the Win32 window messages which Opus sends to plugins as part of the API. (Unless it's just a bitmap, in which case things are pretty trivial.)

Regarding context menus on filetypes, have a look at the Opus Filetype editor which lets you do exactly what you're looking for. I think it's in the Settings menu by default.