EaseReader gives fixme:amstream:IAMMultiMediaStreamImpl_Initialize

Peter Åstrand astrand at cendio.se
Wed Mar 1 03:50:14 CST 2006


On Thu, 26 Jan 2006, Peter Åstrand wrote:

> Hi. I'm trying to get the EaseReader application 
> (http://www.dolphinaudiopublishing.com/products/EaseReader/) running in Wine. 
> By using the native oleacc, oleaut32 and rpcrt4, it's now actually possible 
> to start the application. The "self voicing" mode also works: The application 
> "speaks", for example when hovering above menu choices. Listening to the 
> actual DAISY book does not work, however. I get:
>
> fixme:imm:ImmGetContext (0x10136): stub
> fixme:imm:ImmGetContext (0x10136): stub
> fixme:amstream:IAMMultiMediaStreamImpl_QueryInterface (0x7a4fdc50/0x7a4fdc50)->({bebe595c-9a6f-11d0-8fde-00c04fd9189d},0x7fc6e968)
> fixme:amstream:IAMMultiMediaStreamImpl_Initialize (0x7a4fdc50/0x7a4fdc50)->(0,1,(nil)) partial stub!
> fixme:amstream:IAMMultiMediaStreamImpl_AddMediaStream (0x7a4fdc50/0x7a4fdc50)->((nil),0x4b0d3200,0,(nil)) partial stub!
> fixme:amstream:IAMMultiMediaStreamImpl_OpenFile (0x7a4fdc50/0x7a4fdc50)->(L"c:\\program files\\easereader demo\\help\\22_highlig.mp3",8) stub!


It seems like the main problem is the IAMMultiMediaStreamImpl_OpenFile 
stub. I've tried a quick-n-dirty hack: Just calling ShellExecute from 
IAMMultiMediaStreamImpl_OpenFile. See the patch below. After installing 
Winamp, this actually works (but stop/seek etc doesn't work, of course).

So: Now I'm wondering: How difficult would it be to properly implement
IAMMultiMediaStreamImpl_OpenFile?

Best Regards, 
Peter Åstrand

diff -u -r1.12 amstream.c
--- amstream.c  7 Nov 2005 16:38:48 -0000       1.12
+++ amstream.c  1 Mar 2006 09:45:06 -0000
@@ -28,6 +28,7 @@

  #include "winbase.h"
  #include "wingdi.h"
+#include "shellapi.h"

  #include "amstream_private.h"
  #include "amstream.h"
@@ -284,6 +285,12 @@

      FIXME("(%p/%p)->(%s,%lx) stub!\n", This, iface, debugstr_w(pszFileName), dwFlags);

+    if (dwFlags & AMMSF_RUN) {
+       static const WCHAR verbW[] = {'o', 'p', 'e', 'n', 0};
+       ShellExecuteW(NULL, verbW, pszFileName, NULL, NULL, SW_SHOWNORMAL);
+       return S_OK;
+    }
+
      return E_NOTIMPL;
  }





-- 
Peter Åstrand		ThinLinc Chief Developer
Cendio			http://www.cendio.se
Teknikringen 3
583 30 Linköping        Phone: +46-13-21 46 00


More information about the wine-devel mailing list