How to develop visible controls embedded in Navision forms?

The question is old, but there is no (open source) solution, yet…
Suppose you have to implement an item picture into the item card, where the picture is stored in the database in a BLOB field, but in a format, which Navision cannot display easily (neither BMP nor JPG, etc.). OK, you decide to develop a visible ADO object (formerly known as ActiveX control) in C# with Visual Studio, export the BLOB into a stream and pass it to the control, which should display it in a subform on the item card.
There are well known examples how to program unvisible DLLs and use them as Automation Servers from within Navision (see for example http://dotnetslackers.com/articles/csharp/WritingAnActiveXControlInCSharp.aspx ) This works very well for unvisible controls. Above this it is possilbe -contrary to official statements - to develop visible controls and embbed them into Navision forms (see for example http://www.mibuso.com/dlinfo.asp?FileID=504 which uses an Automation object to display a graphic file which can have various formats like BMP, JPG, TIF, GIF, etc., in a standard Navision subform). Though there are some examples of how to develop visible controls under .NET (see for example http://www.csharphelp.com/archives4/archive643.html ) there is still some point missing for me, namely how to make this visible controls work in Navision…
Perhaps, anybody could give some example or hint, how this can be accomplished.

These controls aren’t embedding directly in Navision forms. They use a simple trick. They capture Navision forms handle and then capture a form event when moving and resizing form. Every time a user makes a form operation it handle a trigger, controls then redraws himself in another position. Control isn’t directly displayed in form but in a transparent form outside Navision. I like more to use external components because they simply handle all these forms. For example manufacturing planning is just an external component to make planning.

so untrue.

embedding means really hijacking the windows forms.

It is not actually necesarry to create a new form. And there is no need to resize this form, this is done by Navision.

You would only need to resize the elements within your components wich you also normaly would have to do.

Embedding is just using a navision form as a host.

And use a wrapper to expose all functions properties and events to navision.

Using external components bring in a lot of different problems, we like the seemless interaction with Navision. Usually external components have it’s own business logic instead of using the logic navision already has.

However really good examples are not available open source and i can’t publish mine. We now have even a gantt chart wich uses 100% navision business logic and is only used for display and user interput and that is a real strength.

http://www.mibuso.com/dlinfo.asp?FileID=333

Well, in the meantime I solved the problem and it’s really not as complicated as one would imagine.
In fact, you have to do no “hijacking”, complex event analysing, manual redrawing, or something like this.

It’s simply 10 or 15 lines of code extra and you’ve got your visible control embedded in a NAV subform…

Take a look at this if you want to know what I mean:
http://dynamicsuser.net/media/p/143994.aspx