I know this may be a long shot so forgive me as I don't really know that much about COM.
Basically what I am trying to do is get the pointer to the IUnknown interface for a running application, the problem is the only thing I know about the app is its main window handle.
Would this be possible?
The "standard" way to do this is with the AccessibleObjectFromWindow Win32 API. That said, not many things actually support this, so your mileage may vary. You'd PInvoke to AccessibleObjectFromWindow, pass the HWND, then use Marshal.GetObjectForIUnknown on the IntPtr you get back.