Linux (1)
MLO (1)
Wine (1)

How do I get My Life Organized (MLO) cloud sync to work under Wine?

I get OLE error 80004001 during a sync.

80004001 indicates that a COM component had an issue. In this case, I believe it is Wine's built-in MSXML having a problem with creating an XML DOM node that includes a namespace designation. 

I solved the problem on Debian (Lenny) with Wine my installing the MSXML redistributable you can pick up from Microsoft's web site (legally if you have a legitimate license for Windows).

Here I give you a bit more generic instructions for getting it going:

  1. Get the MSXML 3 installer:
    wget http://download.microsoft.com/download/a/5/e/a5e03798-2454-4d4b-89a3-4a47579891d8/msxml3.msi
  2. If Wine is not installed, become root (sudo the command, or su first):
    1. apt-get install wine
      (of course, if you aren't using apt, then substitute whatever works for your installation)
    2. Get back to being your usual user (i.e., the userid that will run MLO):
      winecfg
      to get all the .wine directories created in the user's home directory.
    3. exit winecfg
  3. cd to the directory where you downloaded msxml3.msi and enter:
    wine msiexec /i msxml3.msi
  4. If you run MLO from a removable device (such as a USB drive) and it is installed, you don't have to do the MLO installation. Otherwise, cd to the directory where the MLO installer is and enter:
    wine ./MLO-setup.exe
    (or whatever the installer is called)
  5. when that finishes, enter:
    winecfg
  6. click the "Applications" tab.
    If MLO is not listed,
    1. choose Windows XP (or later) under the Windows version
    2. click the "Add Application" button
    3. navigate to wherever you installed MLO to (call this the MLO program directory)
    4. Choose mlo.exe from there and click the "Open" button.
    5. Now choose the MLO executable in the list under the Applications tab.
  7. Click the "Libraries" tab
  8. In the "New override for Library" text box, type:
    msxml3
  9. click the "Add" button.
  10. Highlight msxml3 in the list of libraries (it is probably the only one).
  11. click the "Edit" button
  12. click the "Native (Windows)" radio button
  13. click OK
  14. click the "Apply" button to make the changes take affect.
  15. Start MLO (from the menus if you have it, or from a command line in the MLO program directory with wine ./mlo.exe)

Update: If you do this and get an error code like 80040152, then you also need to get and install msxml4:

  1. http://download.microsoft.com/download/9/6/5/9657c01e-107f-409c-baac-7d249561629c/msxml.msi
  2. wine msiexec /i msxml.msi
  3. configure another override according to steps 8-14 above, but put msxml4 in for msxml3

NOTE: You can't just get the latest MSXML and install it and do this. MSXML is distributed so multiple versions can run side-by-side, which means different versions have different GUIDs and not all the MSXML installers update the latest ProgID. Since MLO is loading it via COM/OLE, to get a version other than the 3 to work, I think you would have to modify the CLASSES registry branches for it to point it at the one you want. If MLO is specifically choosing MSXML 3, then even this won't help.

Comments

Still error OLE 80040152

06/09/2012 07:52
The first part (OLE 80004001) works like a charm. But the same trick with MSXML4 doesn't solve my 80040152 error. Anny suggestions? Should it work or did something change in Wine or MLO that ruined this sollution. I use MLO 3.5.9 because 3.6 doesn't run under wine.

RE: Still error OLE 80040152

06/11/2012 12:38
I actually haven't used MLO in the last year -- it has been easier lately to just use my whiteboard as a big Project/Task system -- so I let my cloud subscription lapse and can't test, but I still have MLO 3.5.7 installed under Wine 1.4 and the sync gets at least far enough to get a message back from the server that says my subscription expired. I vaguely recall turning on logging in Wine and maybe MLO and spending quite a bit of time with dependency reports on the MLO executables figuring out what was going on. I think 0x80040152 means a registry key is missing, likely indicating that a needed COM component is not registered. Under Wine that probably means a Windows API library is not installed. The trick is to analyze logs and executables to determine which COM component MLO is trying to instantiate but Wine can't deliver. I've been thinking about going back to MLO recently, and if I do I'll want this working. I'll post an update if I do that and have troubles.

Add a Comment



NOTE: Comments are moderated and will not show until approved.