Share via

Class Not Registered

Anonymous
2022-12-06T16:39:05+00:00

I am attempting to write a module to get the metadata for a group of MP3 files.

I found the following code online. I followed the download instructions in this article to register the DLL.  https://www.dlldownloader.com/cddbcontrol-dll/ The DLL does show up in the References and is selected.

Here is the link to the file on OneDrive: Catalog.xlsb

I get the Class Not Registered Error on the line: Dim id3Tag As New CddbID3Tag ' CDDBCONTROLLib.CddbID3Tag

You can substitute your own MP3 file in the Testit Subroutine to duplicate the error.

Option Explicit

Sub Testit()

MsgBox GetTagItem("C:\Users\dflak\Music\Albumns\Album 005\06 Why Can't We Be Friends.mp3", Title)

End Sub

Public Enum TagItem

Album

BeatsPerMinute

Comments

CopyrightHolder

CopyrightYear

FileId

Genre

ISRC

Label

LeadArtist

Movie

PartOfSet

Title

TrackPosition

Year

End Enum

Public Function GetTagItem(ByVal Path As String, ByVal Item As TagItem) As String

Dim id3Tag As New CddbID3Tag ' CDDBCONTROLLib.CddbID3Tag 

'Dim id3Tag As CddbID3Tag 

'Set id3Tag = CreateObject("CddbID3Tag") 

id3Tag.LoadFromFile Path, True

id3Tag.LoadFromFile Path, True

Select Case Item

Case Album: GetTagItem = id3Tag.Album 

Case BeatsPerMinute: GetTagItem = id3Tag.BeatsPerMinute 

Case Comments: GetTagItem = id3Tag.Comments 

Case CopyrightHolder: GetTagItem = id3Tag.CopyrightHolder 

Case CopyrightYear: GetTagItem = id3Tag.CopyrightYear 

Case FileId: GetTagItem = id3Tag.FileId 

Case Genre: GetTagItem = id3Tag.Genre 

Case ISRC: GetTagItem = id3Tag.ISRC 

Case Label: GetTagItem = id3Tag.Label 

Case LeadArtist: GetTagItem = id3Tag.LeadArtist 

Case Movie: GetTagItem = id3Tag.Movie 

Case PartOfSet: GetTagItem = id3Tag.PartOfSet 

Case Title: GetTagItem = id3Tag.Title 

Case TrackPosition: GetTagItem = id3Tag.TrackPosition 

Case Year: GetTagItem = id3Tag.Year 

End Select

Set id3Tag = Nothing

End Function

Public Sub SetTagItem(ByVal Path As String, ByVal Item As TagItem, ByVal Value As String)

Dim id3Tag As Object ' CDDBCONTROLLib.CddbID3Tag

Set id3Tag = CreateObject("CDDBControl.CddbID3Tag")

id3Tag.LoadFromFile Path, False

Select Case Item

Case Album: id3Tag.Album = Value 

Case BeatsPerMinute: id3Tag.BeatsPerMinute = Value 

Case Comments: id3Tag.Comments = Value 

Case CopyrightHolder: id3Tag.CopyrightHolder = Value 

Case CopyrightYear: id3Tag.CopyrightYear = Value 

Case FileId: id3Tag.FileId = Value 

Case Genre: id3Tag.Genre = Value 

Case ISRC: id3Tag.ISRC = Value 

Case Label: id3Tag.Label = Value 

Case LeadArtist: id3Tag.LeadArtist = Value 

Case Movie: id3Tag.Movie = Value 

Case PartOfSet: id3Tag.PartOfSet = Value 

Case Title: id3Tag.Title = Value 

Case TrackPosition: id3Tag.TrackPosition = Value 

Case Year: id3Tag.Year = Value 

End Select

id3Tag.SaveToFile Path

Set id3Tag = Nothing

End Sub

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

11 answers

Sort by: Most helpful
  1. Rory Archibald 18,965 Reputation points Volunteer Moderator
    2022-12-07T12:38:05+00:00

    If it's a 32 bit dll I don't think it will work in 64bit Office.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2022-12-07T12:29:50+00:00

    It is listed as being 32-bit. The file date is 2016. 64-bit systems were common even back then :).

    According to the properties it is Version 1.1.0.28 (doesn't sound too encouraging) and was Copyright 1999-2000 (also not good).

    I know that there are 32-bit applications that are compatible with 64-bit systems. Is there a way to tell?

    Was this answer helpful?

    0 comments No comments
  3. Rory Archibald 18,965 Reputation points Volunteer Moderator
    2022-12-07T12:07:11+00:00

    Are you sure the dll is 64bit compatible?

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2022-12-07T12:04:55+00:00

    I've been through this before, but I will do it again.

    I have some questions.

    I have Windows 10 - 64 Bit and Office 365 home subscription 365 also 64 bit.

    Where should I be installing the DLL? - in WinSys32 or SYSWOW64?

    Also if the copy of the DLL I have is corrupt, do you know where I can find a good copy?

    I assume I used the command

    %windir%\System32\regsvr32.exe /i Cddbcontrol.dll to re-install.

    Was this answer helpful?

    0 comments No comments
  5. Anonymous
    2022-12-06T23:43:53+00:00

    %windir%\System32\regsvr32.exe /u Cddbcontrol.dll

    need register first。

    Paste the command below into the Command Line that will open up and hit Enter. This command will delete the damaged registry of the Cddbcontrol.dllfile (It will not delete the file we pasted into theSystem32folder; it will delete the registry inRegedit*. The file we pasted into theSystem32folder will not be damaged)*.

    %windir%\System32\regsvr32.exe /u Cddbcontrol.dll

    Was this answer helpful?

    0 comments No comments