GFWMA/GFWMAmod.bas
Attribute VB_Name = "GFWMAmod"
Option Explicit
'(c)2005 by Louis. Requires a reference to WMP.dll (Windows Media Player).
'NOTE: for attributes (ItemNames) see http://msdn.microsoft.com/library/default.asp?url=/library/en‑us/wmplay10/mmp_sdk/audioitemattributes.asp.
'NOTE: the copyright seems not be to changeable without 'permission'.
Dim WMPObject As Object
Dim WMPMediaObject As Object
Public Function WMAAudioTag_Read(ByVal WMAName As String, ByRef SongName As String, ByRef ArtistName As String, ByRef AlbumName As String, ByRef YearName As String, ByRef Comment As String, ByRef GenreName As String, ByRef TrackNumberName As String, ByRef Composer As String, ByRef Publisher As String, ByRef Copyright As String, ByRef Conductor As String, ByRef Writer As String) As Boolean
On Error GoTo Error:
If WMPObject Is Nothing Then Set WMPObject = New WindowsMediaPlayer
Set WMPMediaObject = WMPObject.newMedia(WMAName)
SongName = WMPMediaObject.getItemInfo("Title")
ArtistName = WMPMediaObject.getItemInfo("Author")
AlbumName = WMPMediaObject.getItemInfo("WM/AlbumTitle")
Comment = WMPMediaObject.getItemInfo("MoreInfo")
YearName = WMPMediaObject.getItemInfo("WM/Year")
GenreName = WMPMediaObject.getItemInfo("Genre")
TrackNumberName = WMPMediaObject.getItemInfo("WM/TrackNumber")
Composer = WMPMediaObject.getItemInfo("WM/Composer")
Publisher = WMPMediaObject.getItemInfo("WM/Publisher")
Copyright = WMPMediaObject.getItemInfo("Copyright")
Conductor = WMPMediaObject.getItemInfo("WM/Conductor")
Writer = WMPMediaObject.getItemInfo("WM/Writer") 'WM/Writer did not work
' '
' Debug.Print WMPMediaObject.getItemInfo("AcquisitionTime")
' Debug.Print WMPMediaObject.getItemInfo("AlbumID")
' Debug.Print WMPMediaObject.getItemInfo("AlbumIDAlbumArtist")
' Debug.Print WMPMediaObject.getItemInfo("Author")
' Debug.Print WMPMediaObject.getItemInfo("AverageLevel")
' Debug.Print WMPMediaObject.getItemInfo("Bitrate")
' Debug.Print WMPMediaObject.getItemInfo("BuyNow")
' Debug.Print WMPMediaObject.getItemInfo("BuyTickets")
' Debug.Print WMPMediaObject.getItemInfo("Copyright")
' Debug.Print WMPMediaObject.getItemInfo("CurrentBitrate")
' Debug.Print WMPMediaObject.getItemInfo("Duration")
' Debug.Print WMPMediaObject.getItemInfo("FileSize")
' Debug.Print WMPMediaObject.getItemInfo("FileType")
' Debug.Print WMPMediaObject.getItemInfo("Is_Protected")
' Debug.Print WMPMediaObject.getItemInfo("IsVBR")
' Debug.Print WMPMediaObject.getItemInfo("MediaType")
' Debug.Print WMPMediaObject.getItemInfo("MoreInfo")
' Debug.Print WMPMediaObject.getItemInfo("PeakValue")
' Debug.Print WMPMediaObject.getItemInfo("ProviderLogoURL")
' Debug.Print WMPMediaObject.getItemInfo("ProviderURL")
' Debug.Print WMPMediaObject.getItemInfo("RecordingTime")
' Debug.Print WMPMediaObject.getItemInfo("Writer")
' Debug.Print WMPMediaObject.getItemInfo("RequestState")
' Debug.Print WMPMediaObject.getItemInfo("SourceURL")
' Debug.Print WMPMediaObject.getItemInfo("SyncState")
' Debug.Print WMPMediaObject.getItemInfo("Title")
' Debug.Print WMPMediaObject.getItemInfo("TrackingID")
' Debug.Print WMPMediaObject.getItemInfo("UserCustom1")
' Debug.Print WMPMediaObject.getItemInfo("UserCustom2")
' Debug.Print WMPMediaObject.getItemInfo("UserEffectiveRating")
' Debug.Print WMPMediaObject.getItemInfo("UserLastPlayedTime")
' Debug.Print WMPMediaObject.getItemInfo("UserPlayCount")
' Debug.Print WMPMediaObject.getItemInfo("UserPlaycountAfternoon")
' Debug.Print WMPMediaObject.getItemInfo("UserPlaycountEvening")
' Debug.Print WMPMediaObject.getItemInfo("UserPlaycountMorning")
' Debug.Print WMPMediaObject.getItemInfo("UserPlaycountNight")
' Debug.Print WMPMediaObject.getItemInfo("UserPlaycountWeekday")
' Debug.Print WMPMediaObject.getItemInfo("UserPlaycountWeekend")
' Debug.Print WMPMediaObject.getItemInfo("UserRating")
' Debug.Print WMPMediaObject.getItemInfo("UserServiceRating")
' Debug.Print WMPMediaObject.getItemInfo("WM/AlbumArtist")
' Debug.Print WMPMediaObject.getItemInfo("WM/AlbumTitle")
' Debug.Print WMPMediaObject.getItemInfo("WM/Category")
' Debug.Print WMPMediaObject.getItemInfo("WM/Composer")
' Debug.Print WMPMediaObject.getItemInfo("WM/Conductor")
' Debug.Print WMPMediaObject.getItemInfo("WM/ContentDistributor")
' Debug.Print WMPMediaObject.getItemInfo("WM/ContentGroupDescription")
' Debug.Print WMPMediaObject.getItemInfo("WM/Writer")
' Debug.Print WMPMediaObject.getItemInfo("WM/Genre")
' Debug.Print WMPMediaObject.getItemInfo("WM/GenreID")
' Debug.Print WMPMediaObject.getItemInfo("WM/InitialKey")
' Debug.Print WMPMediaObject.getItemInfo("WM/Language")
' Debug.Print WMPMediaObject.getItemInfo("WM/Lyrics")
' Debug.Print WMPMediaObject.getItemInfo("WM/MCDI")
' Debug.Print WMPMediaObject.getItemInfo("WM/MediaClassPrimaryID")
' Debug.Print WMPMediaObject.getItemInfo("WM/MediaClassSecondaryID")
' Debug.Print WMPMediaObject.getItemInfo("WM/Mood")
' Debug.Print WMPMediaObject.getItemInfo("WM/ParentalRating")
' Debug.Print WMPMediaObject.getItemInfo("WM/Period")
' Debug.Print WMPMediaObject.getItemInfo("WM/ProtectionType")
' Debug.Print WMPMediaObject.getItemInfo("WM/Provider")
' Debug.Print WMPMediaObject.getItemInfo("WM/ProviderRating")
' Debug.Print WMPMediaObject.getItemInfo("WM/ProviderStyle")
' Debug.Print WMPMediaObject.getItemInfo("WM/Publisher")
' Debug.Print WMPMediaObject.getItemInfo("WM/SubscriptionContentID")
' Debug.Print WMPMediaObject.getItemInfo("WM/SubTitle")
' Debug.Print WMPMediaObject.getItemInfo("WM/TrackNumber")
' Debug.Print WMPMediaObject.getItemInfo("WM/UniqueFileIdentifier")
' Debug.Print WMPMediaObject.getItemInfo("WM/WMCollectionGroupID")
' Debug.Print WMPMediaObject.getItemInfo("WM/WMCollectionID")
' Debug.Print WMPMediaObject.getItemInfo("WM/WMContentID")
' Debug.Print WMPMediaObject.getItemInfo("WM/Writer")
' Debug.Print WMPMediaObject.getItemInfo("WM/Year")
' '
WMAAudioTag_Read = True
Exit Function
Error:
WMAAudioTag_Read = False
Exit Function
End Function
Public Function WMAAudioTag_ReadByte(ByVal WMAName As String, ByRef SongName() As Byte, ByRef ArtistName() As Byte, ByRef AlbumName() As Byte, ByRef YearName() As Byte, ByRef Comment() As Byte, ByRef GenreName() As Byte, ByRef TrackNumberName() As Byte, ByRef Composer() As Byte, ByRef Publisher() As Byte, ByRef Copyright() As Byte, ByRef Conductor() As Byte, ByRef Writer() As Byte, ByVal BSLengthMax As Long) As Boolean
Dim Song As String, Artist As String, Album As String, Year As String, CommentLocal As String, Genre As String, TrackNumber As String
Dim ComposerLocal As String, PublisherLocal As String, CopyrightLocal As String, ConductorLocal As String, WriterLocal As String
'begin
Call WMAAudioTag_Read(WMAName, Song, Artist, Album, Year, CommentLocal, Genre, TrackNumber, ComposerLocal, PublisherLocal, CopyrightLocal, ConductorLocal, WriterLocal)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, SongName(), Song)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, ArtistName(), Artist)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, AlbumName(), Album)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, YearName(), Year)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, Comment(), CommentLocal)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, GenreName(), Genre)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, TrackNumberName(), TrackNumber)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, Composer(), ComposerLocal)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, Publisher(), PublisherLocal)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, Copyright(), CopyrightLocal)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, Conductor(), ConductorLocal)
Call GETFIXEDBYTESTRINGFROMSTRING(BSLengthMax, Writer(), WriterLocal)
End Function
Public Function WMAAudioTag_Write(ByVal WMAName As String, ByRef SongName As String, ByRef ArtistName As String, ByRef AlbumName As String, ByRef YearName As String, ByRef Comment As String, ByRef GenreName As String, ByRef TrackNumberName As String, ByRef Composer As String, ByRef Publisher As String, ByRef Copyright As String, ByRef Conductor As String, ByRef Writer As String) As Boolean
On Error GoTo Error:
If WMPObject Is Nothing Then Set WMPObject = New WindowsMediaPlayer
Set WMPMediaObject = WMPObject.newMedia(WMAName)
Call WMPMediaObject.setItemInfo("Title", SongName)
Call WMPMediaObject.setItemInfo("Author", ArtistName)
Call WMPMediaObject.setItemInfo("WM/AlbumTitle", AlbumName)
Call WMPMediaObject.setItemInfo("MoreInfo", AlbumName)
Call WMPMediaObject.setItemInfo("WM/Year", YearName)
Call WMPMediaObject.setItemInfo("Genre", GenreName)
Call WMPMediaObject.setItemInfo("WM/TrackNumber", TrackNumberName)
Call WMPMediaObject.setItemInfo("WM/Composer", Composer)
Call WMPMediaObject.setItemInfo("WM/Publisher", Publisher)
'Call WMPMediaObject.setItemInfo("Copyright", Copyright) 'forbidden
Call WMPMediaObject.setItemInfo("WM/Conductor", Conductor)
Call WMPMediaObject.setItemInfo("WM/Writer", Writer)
WMAAudioTag_Write = True
Exit Function
Error:
WMAAudioTag_Write = False
Exit Function
End Function
'***ITEM NAMES***
' * AcquisitionTime Attribute
' * AlbumID Attribute
' * AlbumIDAlbumArtist Attribute
' * Author Attribute
' * AverageLevel Attribute
' * Bitrate Attribute
' * BuyNow Attribute
' * BuyTickets Attribute
' * Copyright Attribute
' * CurrentBitrate Attribute
' * Duration Attribute
' * FileSize Attribute
' * FileType Attribute
' * Is_Protected
' * IsVBR Attribute
' * MediaType Attribute
' * MoreInfo Attribute
' * PeakValue Attribute
' * ProviderLogoURL Attribute
' * ProviderURL Attribute
' * RecordingTime Attribute
' * Writer Attribute
' * RequestState Attribute
' * SourceURL Attribute
' * SyncState Attribute
' * Title Attribute
' * TrackingID Attribute
' * UserCustom1 Attribute
' * UserCustom2 Attribute
' * UserEffectiveRating Attribute
' * UserLastPlayedTime Attribute
' * UserPlayCount Attribute
' * UserPlaycountAfternoon Attribute
' * UserPlaycountEvening Attribute
' * UserPlaycountMorning Attribute
' * UserPlaycountNight Attribute
' * UserPlaycountWeekday Attribute
' * UserPlaycountWeekend Attribute
' * UserRating Attribute
' * UserServiceRating Attribute
' * WM/AlbumArtist Attribute
' * WM/AlbumTitle Attribute
' * WM/Category Attribute
' * WM/Composer Attribute
' * WM/Conductor Attribute
' * WM/ContentDistributor Attribute
' * WM/ContentGroupDescription Attribute
' * WM/Writer Attribute
' * WM/Genre Attribute
' * WM/GenreID Attribute
' * WM/InitialKey Attribute
' * WM/Language Attribute
' * WM/Lyrics Attribute
' * WM/MCDI Attribute
' * WM/MediaClassPrimaryID Attribute
' * WM/MediaClassSecondaryID Attribute
' * WM/Mood Attribute
' * WM/ParentalRating Attribute
' * WM/Period Attribute
' * WM/ProtectionType Attribute
' * WM/Provider Attribute
' * WM/ProviderRating Attribute
' * WM/ProviderStyle Attribute
' * WM/Publisher Attribute
' * WM/SubscriptionContentID Attribute
' * WM/SubTitle Attribute
' * WM/TrackNumber Attribute
' * WM/UniqueFileIdentifier Attribute
' * WM/WMCollectionGroupID Attribute
' * WM/WMCollectionID Attribute
' * WM/WMContentID Attribute
' * WM/Writer Attribute
' * WM/Year Attribute
'***END OF ITEM NAMES***
[END OF FILE]