Question

I would like to be able to open Windows Live Writer from my (C#) application and have the beginnings of a blog post filled out.

This should be very simple. Windows Live Writer defines an Application API that exposes a COM interface called WindowsLiveWriterApplicationLib. According to blog posts such as this, after you add a new reference to the typelib (usually located here: C:\Program Files (x86)\Windows Live\Writer\WindowsLiveWriter.Application.tlb), you should be able to write code like this:

static void Main(string[] args)
{

    var wlw = new WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass();
    wlw.BlogThisHtml("test","test");

}

...except it isn't working. Doesn't event compile. Instead I get errors like this:

Error   1   The type 'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' has no constructors defined    

Error   2   Interop type 'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' cannot be embedded. Use the applicable interface instead.  

Error   3   'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' does not contain a definition for 'BlogThisHtml' and no extension method 'BlogThisHtml' accepting a first argument of type 'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' could be found (are you missing a using directive or an assembly reference?) 

It claims the class can't be embedded, has no constructors, and does not contain the method I am calling. (when it clearly does in Object Explorer.)

What obvious thing am I missing here?

Was it helpful?

Solution

Managed to get it working.

I wound up having to register WindowsLiveWriter.Application.dll using RegSvr32.exe. After that it started working.

Here is working code:

static void Main(string[] args)
{

    WindowsLiveWriterApplication wlw = new WindowsLiveWriterApplication();
    ((IWindowsLiveWriterApplication2)wlw).BlogThisHtml("test", "testhtml");

}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top