You are currently browsing the category archive for the ‘COM Interop’ category.

You can get the source code for YouCube 2.0 here.  It’s lightly commented, mainly to draw attention to the dirty hacks :)

See my earlier post for a brief description of what’s going on and note the following:

  • The main class of interest is CjcWebBrowser.  It starts a worker thread to take snapshots of the browser control and updates the WriteableBitmap through Dispatcher.Invoke.
  • There’s some obsolete code in there (mainly in the NativeMethods folder).  It could use some refactoring :)
  • It’s tempting to revert to using the Windows Forms WebBrowser control (instead of the WPF/3.5 one).  It already has a ‘DownloadProgress’ event and seemed to perform a bit better (but I could be wrong on that).  Let me know if you get chance to try it…

UPDATE 3: YouCube 3.0 (based on Google Chromium) right here.

UPDATE 2: Now interactive!  See here for details.

UPDATE: Added a directional light, specular highlight and trackball / mouse control…  Just because I could :)

As you know, .NET 3.5 SP1 includes a WebBrowser control.  The current implementation is just a wrapper around the MSHTML ActiveX control, which unfortunately prevents you from doing crazy things to it through WPF.

The ActiveX control itself can be queried for the IViewObject interface and have its Draw method called.  The WPF WebBrowser doesn’t expose this directly, but fortunately the Windows Forms WebBrowser does (alternatively you could host MSHTML directly).

All that remains is to get the image into a WriteableBitmap…  Then the fun can begin :) :

image

You can try the result here (ClickOnce application).  The source code is available here.  Note the browser isn’t interactive [yet] :)

kick it

My colleague Terry Aney has posted a detailed article on the “fun” he’s had creating Excel add-ins in C# (after migrating from XLAs + VBA).  If you need to make several thousand calls between add-ins and Excel and want to use .NET, you should definitely run some performance comparisons first :)

In a related post he discusses source control strategies / workarounds for XLA files.

Follow

Get every new post delivered to your Inbox.

Join 41 other followers