1367: Fails to register COM object [#7699]

Post a reply

Smilies
:D :) :( :o :-? 8) :lol: :x :P :oops: :cry: :evil: :roll: :wink:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: 1367: Fails to register COM object [#7699]

Re: 1367: Fails to register COM object [#7699]

by PhYrE » Sun May 01, 2011 9:15 am

confirmed fixed.
Thank you

Re: 1367 (still): Fails to register COM object

by Melloware » Thu Apr 28, 2011 7:47 am

Thanks for confirming Ludek!

Re: 1367 (still): Fails to register COM object

by Ludek » Thu Apr 28, 2011 3:49 am

aha, the error is there, but I need to right-click 'Monkey Tunes' node and select 'View Log File...' to see the error, so now I am able to reproduce on clean Windows Vista installation.

Added as http://www.ventismedia.com/mantis/view.php?id=7699

Re: 1367 (still): Fails to register COM object

by Ludek » Thu Apr 28, 2011 2:58 am

I have just tried to reproduce the problem with clean Windows Vista and MM4 installed, but I cannot reproduce the problem with MonkeyTunes,
what are the exact steps to reproduce the error?

I can try also with Windows 7 and Windows XP, but I have already MM3 installed on these systems, is it enough to uninstall MM3 in order to reproduce the error or there is a pre-condition that MM3 has never been intalled on that machine?

1367 Fails to register COM object

by PhYrE » Wed Apr 27, 2011 3:20 pm

Melloware appears to be pointing back to MediaMonkey4 and has asked that i assist in reporting it as I have a reproducable case.
http://forum.melloware.com/viewtopic.php?f=16&t=9202
Melloware wrote:Do you want to report the bug there since you have the scenario reproducible?
If I install MM3 and then MM4, all works well and it can add to the tree node.
If I install MM4 on a clean Windows 7 Professional x64 install (not sure if this is OS relevant issue), I get the COM error.
It appears that it is not working correctly.
This problem:
- didn't happen on a system I used to have MM3 on
- After a format, I can not get MM4 to work with it at all on clean install of Windows
- If I put MM3 on the system and then install MM4, I can get it to work. This has been the only fix I've seen.
- All when running as a user or as administrator, including running MM4 from the install program and so on.

Based on the excerpts and other discussions with the developer and forums with other users, this appears to be reproducable. There are others reporting that the only way to solve this is to install MM3 first and MM4 overtop.

I cite excerpts from various discussions on the matter for further clarification on how it's used.
Melloware wrote: They report that if they don't install MM3 before installing MM4 they get a COM error when I try to add a child treenode. Could it be possibly the COM object for MM4 is missing this certain API call that happens to be in the MM3 COM API? That is why installing 3 before 4 works?

Code: Select all

2011-04-17 16:36:08,726 [ERROR] - (12) - Error filling treenode...
System.InvalidCastException: Unable to cast COM object of type 'SongsDB.SDBApplicationClass' to interface type 'SongsDB.ISDBApplication'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{1FAF02F8-A7D3-41F1-9210-A3B12046F136}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
   at SongsDB.SDBApplicationClass.get_MainTree()
   at Melloware.MonkeyTunes.MonkeyTunesServer.CJynqUKX3h8mBRSYKJY(Object )
   at Melloware.MonkeyTunes.MonkeyTunesServer.Un2KIghXy(SDBTreeNode )
Here is the code where I fill the treenode:

Code: Select all

/// <summary>
        /// Event fired when the MonkeyTunes + is clicked on to expand the treeview.
        /// </summary>
        /// <param name="node">the node to fill the children for</param>
        void MediaMonkey_OnFillChildren(SDBTreeNode node) {
        	try {
        		LOG.Info("MonkeyTunes Filling Treenode");
        		SDBTree tree = this.MediaMonkey.MainTree;

        		// delete all old children
        		node.HasChildren = false;

        		foreach (KeyValuePair<string, NetService> pair in PairingServer.Services) {
        			string deviceName;
        			NetService service = pair.Value;
        			try {
        				byte[] txt = service.TXTRecordData;
        				IDictionary dict = NetService.DictionaryFromTXTRecordData(txt);
        				byte[] value = (byte[])dict["DvNm"];
        				deviceName = Encoding.UTF8.GetString(value);

        			} catch (Exception) {
        				deviceName = "Unknown Device";
        			}
        			LOG.InfoFormat("TreeNode Device Name = {0}", deviceName);
        			SDBTreeNode deviceNode = tree.CreateNode;
        			deviceNode.Caption = deviceName;
        			deviceNode.CustomData = service.Name;
        			deviceNode.IconIndex = 54;
        			deviceNode.OnNodeFocused += new ISDBTreeNodeEvents_OnNodeFocusedEventHandler(MediaMonkey_OnNodeFocused);
        			tree.AddNode(node, deviceNode, EnumTreeNodePos.NodePos_AddChildLast);
        		}
        		node.Expanded = true;
        		LOG.Info("MonkeyTunes Filled Treenode successfully");
        	} catch (Exception ex) {
        		LOG.Error("Error filling treenode...", ex);
        	}
        }
Melloware wrote:Another user has confirmed this. A clean MM4 install on Win 7 64 bit the COM object fails. If they install MM3 then MM4 all works...

http://forum.melloware.com/viewtopic.ph ... 294#p25293
Melloware wrote:Yes that is what I am doing but what is really interesting is I am using the COM object fine and it only fails when calling the above method. Meaning other SDB calls are working fine so the COM object is there it is just when adding this child node it throws this error. Then when users install MM3 and then MM4 this error is corrected.

It is very strange.

I am actually passing the running COM object into my application through VBS like this.... So I create my COM .NET app and then pass the SDB instance into it. This is the only way in C# to catch the OnPlay, OnStop, events.

Code: Select all

Set monkeytunes = CreateObject("Melloware.MonkeyTunes.MonkeyTunesServer")
monkeytunes.Init(SDB)

Re: 1364: Fails to register COM object

by Lowlander » Wed Apr 20, 2011 4:18 pm

It would seem Melloware is working on this: http://www.mediamonkey.com/forum/viewto ... 19&t=54732

Re: 1364: Fails to register COM object

by PhYrE » Tue Apr 19, 2011 12:34 pm

Let me know if I can do anything to help move this bug along.

Re: 1364: Fails to register COM object

by PhYrE » Sun Apr 17, 2011 5:13 pm

jmcc wrote:I had exactly the same thing - the way that I got round it was to install MM3 first and then do an "over the top" upgrade to MM4. Worked immediately after that.
I've heard that the above method is successful, but I'd like to NOT do that.
Thus the bug report in hopes that this is fixed.

I just formatted the computer again (MM was the only thing on the new install) and tried again without any luck, all running as administrator.

It's clear nothing is able to register the COM object even with admin rights in the install and application, and accordingly this thread is my bug report.

Re: 1364: Fails to register COM object

by jmcc » Sun Apr 17, 2011 5:06 pm

I had exactly the same thing - the way that I got round it was to install MM3 first and then do an "over the top" upgrade to MM4. Worked immediately after that.

1367: Fails to register COM object [#7699]

by PhYrE » Sun Apr 17, 2011 4:17 pm

Windows 7 64-bit.
Fresh Windows 7 install.
Install MM as administrator. Let it launch MM from the installer as instructed.
Install a plugin that uses the COM object- this error comes in.
2011-04-17 16:55:18,537 [ERROR] - (9) - Error filling treenode...
System.InvalidCastException: Unable to cast COM object of type 'SongsDB.SDBApplicationClass' to interface type 'SongsDB.ISDBApplication'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{1FAF02F8-A7D3-41F1-9210-A3B12046F136}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
at SongsDB.SDBApplicationClass.get_MainTree()
at Melloware.MonkeyTunes.MonkeyTunesServer.CJynqUKX3h8mBRSYKJY(Object )
at Melloware.MonkeyTunes.MonkeyTunesServer.Un2KIghXy(SDBTreeNode )
Tried this help from MonkeyTunes

Solution: It looks like somehow your MM COM object on installation has failed to properly install.

1) Uninstall MonkeyTunes using the uninstaller

2) Unisntall MediaMonkey using Windows add/remove

3) Run Piriform CCleaner 3 times. Apparently even after the first cleanup it was still able to locate uncleaned items. After 3 cycles it appeared all clean

4) Deleted all the /MediaMonkey directories under C:\Users\USER\AppData\Roaming\MediaMonkey and under C:\Program Files\MediaMonkey

5) Install MediaMonkey by right clicking the installer and choosing "Run As Administrator". At the end of the Installation when it asks "Launch MediaMonkey Now?" say YES. You probably said NO the last time which is how this happened.

6) Run MediaMonkey once. You may have to run it once and then run it once as Administrator. Then close MediaMonkey. This is a strange but important step to install the MM com object.

7) Install MonkeyTunes latest version

8) Run MediaMonkey. It should work.
This does NOT help the situation.


I have tried using regsrv32 on Mediamonkey.exe but it only works on DLL or OCX files and says it can't work.


Any ideas? Why is this not registering? Even on a fresh install.

Top