1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
|
/////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000 John Adcock. All rights reserved.
/////////////////////////////////////////////////////////////////////////////
//
// This file is subject to the terms of the GNU General Public License as
// published by the Free Software Foundation. A copy of this license is
// included with this software distribution in the file COPYING. If you
// do not have a copy, you may obtain a copy by writing to the Free
// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details
//
/////////////////////////////////////////////////////////////////////////////
// ID3COM.idl : IDL source for ID3COM.dll
/////////////////////////////////////////////////////////////////////////////
// Change Log
//
// Date Developer Changes
//
// 05 Jan 2000 John Adcock Original Release
// 18 Aug 2000 Philip Oldaker Added Picture Functionality
// 01 Nov 2002 John Adcock Changed fields to reflect changes to id3lib
//
/////////////////////////////////////////////////////////////////////////////
// This file will be processed by the MIDL tool to
// produce the type library (ID3COM.tlb) and marshalling code.
import "oaidl.idl";
import "ocidl.idl";
typedef
[
uuid(181CFC77-C770-11d3-841C-0008C782A257),
helpstring("ID3 Field Types")
]
enum
{
ID3_FIELD_NOFIELD = 0, /**< No field */
ID3_FIELD_TEXTENC, /**< Text encoding (unicode or ASCII) */
ID3_FIELD_TEXT, /**< Text field */
ID3_FIELD_URL, /**< A URL */
ID3_FIELD_DATA, /**< Data field */
ID3_FIELD_DESCRIPTION, /**< Description field */
ID3_FIELD_OWNER, /**< Owner field */
ID3_FIELD_EMAIL, /**< Email field */
ID3_FIELD_RATING, /**< Rating field */
ID3_FIELD_FILENAME, /**< Filename field */
ID3_FIELD_LANGUAGE, /**< Language field */
ID3_FIELD_PICTURETYPE, /**< Picture type field */
ID3_FIELD_IMAGEFORMAT, /**< Image format field */
ID3_FIELD_MIMETYPE, /**< Mimetype field */
ID3_FIELD_COUNTER, /**< Counter field */
ID3_FIELD_ID, /**< Identifier/Symbol field */
ID3_FIELD_VOLUMEADJ, /**< Volume adjustment field */
ID3_FIELD_NUMBITS, /**< Number of bits field */
ID3_FIELD_NUMBER, /**< General Number, can be anything, as long it's an integer <= 32 bits */
ID3_FIELD_VOLCHGRIGHT, /**< Volume chage on the right channel */
ID3_FIELD_VOLCHGLEFT, /**< Volume chage on the left channel */
ID3_FIELD_PEAKVOLRIGHT, /**< Peak volume on the right channel */
ID3_FIELD_PEAKVOLLEFT, /**< Peak volume on the left channel */
ID3_FIELD_TIMESTAMPFORMAT, /**< SYLT Timestamp Format */
ID3_FIELD_CONTENTTYPE, /**< SYLT content type */
ID3_FIELD_REVERBL, /**< Reverb Left */
ID3_FIELD_REVERBR, /**< Reverb Right */
ID3_FIELD_REVERBBOUNCESL, /**< Reverb Bounces Left */
ID3_FIELD_REVERBBOUNCESR, /**< Reverb Bounces Right */
ID3_FIELD_REVERBFEEDBACKL2L, /**< Reverb Feedback Left to Left */
ID3_FIELD_REVERBFEEDBACKL2R, /**< Reverb Feedback Left to Right */
ID3_FIELD_REVERBFEEDBACKR2R, /**< Reverb Feedback Right to Right */
ID3_FIELD_REVERBFEEDBACKR2L, /**< Reverb Feedback Right to Left */
ID3_FIELD_PREMIXL2R, /**< Premix Left to Right */
ID3_FIELD_PREMIXR2L, /**< Premix Right to Left */
ID3_FIELD_LENGTH, /**< Size field, can be bits, bytes, time etc */
ID3_FIELD_FLAGS, /**< Flags field */
ID3_FIELD_OFFSET, /**< Offset, can be bits, bytes, time etc */
ID3_FIELD_PRICE, /**< Price Field, containing currency+amount */
ID3_FIELD_8DATE, /**< Date Field, containing date as YYYYMMDD */
ID3_FIELD_SELLER, /**< Seller */
ID3_FIELD_DELIVERY, /**< Way of delivery field */
ID3_FIELD_BITSSIZE, /**< contains the number of bits for other fields' fixed size */
ID3_FIELD_BYTESSIZE, /**< contains the number of bytes for other fields' fixed size */
ID3_FIELD_LASTFIELDID /**< Last field placeholder */
} eID3FieldTypes;
typedef
[
uuid(385B5F8C-1F3C-11d3-83C6-0008C782A257),
helpstring("ID3 Frame Types")
]
enum
{
/* ???? */ ID3_NOFRAME = 0, /**< No known frame */
/* AENC */ ID3_AUDIOCRYPTO, /**< Audio encryption */
/* APIC */ ID3_PICTURE, /**< Attached picture */
/* ASPI */ ID3_AUDIOSEEKPOINT, /**< Audio seek point index */
/* COMM */ ID3_COMMENT, /**< Comments */
/* COMR */ ID3_COMMERCIAL, /**< Commercial frame */
/* ENCR */ ID3_CRYPTOREG, /**< Encryption method registration */
/* EQU2 */ ID3_EQUALIZATION2, /**< Equalisation (2) */
/* EQUA */ ID3_EQUALIZATION, /**< Equalization */
/* ETCO */ ID3_EVENTTIMING, /**< Event timing codes */
/* GEOB */ ID3_GENERALOBJECT, /**< General encapsulated object */
/* GRID */ ID3_GROUPINGREG, /**< Group identification registration */
/* IPLS */ ID3_INVOLVEDPEOPLE, /**< Involved people list */
/* LINK */ ID3_LINKEDINFO, /**< Linked information */
/* MCDI */ ID3_CDID, /**< Music CD identifier */
/* MLLT */ ID3_MPEGLOOKUP, /**< MPEG location lookup table */
/* OWNE */ ID3_OWNERSHIP, /**< Ownership frame */
/* PRIV */ ID3_PRIVATE, /**< Private frame */
/* PCNT */ ID3_PLAYCOUNTER, /**< Play counter */
/* POPM */ ID3_POPULARIMETER, /**< Popularimeter */
/* POSS */ ID3_POSITIONSYNC, /**< Position synchronisation frame */
/* RBUF */ ID3_BUFFERSIZE, /**< Recommended buffer size */
/* RVA2 */ ID3_VOLUMEADJ2, /**< Relative volume adjustment (2) */
/* RVAD */ ID3_VOLUMEADJ, /**< Relative volume adjustment */
/* RVRB */ ID3_REVERB, /**< Reverb */
/* SEEK */ ID3_SEEKFRAME, /**< Seek frame */
/* SIGN */ ID3_SIGNATURE, /**< Signature frame */
/* SYLT */ ID3_SYNCEDLYRICS, /**< Synchronized lyric/text */
/* SYTC */ ID3_SYNCEDTEMPO, /**< Synchronized tempo codes */
/* TALB */ ID3_ALBUM, /**< Album/Movie/Show title */
/* TBPM */ ID3_BPM, /**< BPM (beats per minute) */
/* TCOM */ ID3_COMPOSER, /**< Composer */
/* TCON */ ID3_CONTENTTYPE, /**< Content type */
/* TCOP */ ID3_COPYRIGHT, /**< Copyright message */
/* TDAT */ ID3_DATE, /**< Date */
/* TDEN */ ID3_ENCODINGTIME, /**< Encoding time */
/* TDLY */ ID3_PLAYLISTDELAY, /**< Playlist delay */
/* TDOR */ ID3_ORIGRELEASETIME, /**< Original release time */
/* TDRC */ ID3_RECORDINGTIME, /**< Recording time */
/* TDRL */ ID3_RELEASETIME, /**< Release time */
/* TDTG */ ID3_TAGGINGTIME, /**< Tagging time */
/* TIPL */ ID3_INVOLVEDPEOPLE2, /**< Involved people list */
/* TENC */ ID3_ENCODEDBY, /**< Encoded by */
/* TEXT */ ID3_LYRICIST, /**< Lyricist/Text writer */
/* TFLT */ ID3_FILETYPE, /**< File type */
/* TIME */ ID3_TIME, /**< Time */
/* TIT1 */ ID3_CONTENTGROUP, /**< Content group description */
/* TIT2 */ ID3_TITLE, /**< Title/songname/content description */
/* TIT3 */ ID3_SUBTITLE, /**< Subtitle/Description refinement */
/* TKEY */ ID3_INITIALKEY, /**< Initial key */
/* TLAN */ ID3_LANGUAGE, /**< Language(s) */
/* TLEN */ ID3_SONGLEN, /**< Length */
/* TMCL */ ID3_MUSICIANCREDITLIST,/**< Musician credits list */
/* TMED */ ID3_MEDIATYPE, /**< Media type */
/* TMOO */ ID3_MOOD, /**< Mood */
/* TOAL */ ID3_ORIGALBUM, /**< Original album/movie/show title */
/* TOFN */ ID3_ORIGFILENAME, /**< Original filename */
/* TOLY */ ID3_ORIGLYRICIST, /**< Original lyricist(s)/text writer(s) */
/* TOPE */ ID3_ORIGARTIST, /**< Original artist(s)/performer(s) */
/* TORY */ ID3_ORIGYEAR, /**< Original release year */
/* TOWN */ ID3_FILEOWNER, /**< File owner/licensee */
/* TPE1 */ ID3_LEADARTIST, /**< Lead performer(s)/Soloist(s) */
/* TPE2 */ ID3_BAND, /**< Band/orchestra/accompaniment */
/* TPE3 */ ID3_CONDUCTOR, /**< Conductor/performer refinement */
/* TPE4 */ ID3_MIXARTIST, /**< Interpreted, remixed, or otherwise modified by */
/* TPOS */ ID3_PARTINSET, /**< Part of a set */
/* TPRO */ ID3_PRODUCEDNOTICE, /**< Produced notice */
/* TPUB */ ID3_PUBLISHER, /**< Publisher */
/* TRCK */ ID3_TRACKNUM, /**< Track number/Position in set */
/* TRDA */ ID3_RECORDINGDATES, /**< Recording dates */
/* TRSN */ ID3_NETRADIOSTATION, /**< Internet radio station name */
/* TRSO */ ID3_NETRADIOOWNER, /**< Internet radio station owner */
/* TSIZ */ ID3_SIZE, /**< Size */
/* TSOA */ ID3_ALBUMSORTORDER, /**< Album sort order */
/* TSOP */ ID3_PERFORMERSORTORDER,/**< Performer sort order */
/* TSOT */ ID3_TITLESORTORDER, /**< Title sort order */
/* TSRC */ ID3_ISRC, /**< ISRC (international standard recording code) */
/* TSSE */ ID3_ENCODERSETTINGS, /**< Software/Hardware and settings used for encoding */
/* TSST */ ID3_SETSUBTITLE, /**< Set subtitle */
/* TXXX */ ID3_USERTEXT, /**< User defined text information */
/* TYER */ ID3_YEAR, /**< Year */
/* UFID */ ID3_UNIQUEFILEID, /**< Unique file identifier */
/* USER */ ID3_TERMSOFUSE, /**< Terms of use */
/* USLT */ ID3_UNSYNCEDLYRICS, /**< Unsynchronized lyric/text transcription */
/* WCOM */ ID3_WWWCOMMERCIALINFO, /**< Commercial information */
/* WCOP */ ID3_WWWCOPYRIGHT, /**< Copyright/Legal infromation */
/* WOAF */ ID3_WWWAUDIOFILE, /**< Official audio file webpage */
/* WOAR */ ID3_WWWARTIST, /**< Official artist/performer webpage */
/* WOAS */ ID3_WWWAUDIOSOURCE, /**< Official audio source webpage */
/* WORS */ ID3_WWWRADIOPAGE, /**< Official internet radio station homepage */
/* WPAY */ ID3_WWWPAYMENT, /**< Payment */
/* WPUB */ ID3_WWWPUBLISHER, /**< Official publisher webpage */
/* WXXX */ ID3_WWWUSER, /**< User defined URL link */
/* */ ID3_METACRYPTO, /**< Encrypted meta frame (id3v2.2.x) */
/* */ ID3_METACOMPRESSION, /**< Compressed meta frame (id3v2.2.1) */
/* >>>> */ ID3_LASTFRAMEID /**< Last field placeholder */
} eID3FrameTypes;
[
object,
uuid(A513A24E-C749-11D3-841C-0008C782A257),
dual,
helpstring("IID3ComField Interface"),
pointer_default(unique)
]
interface IID3ComField : IDispatch
{
[propget, id(0), helpstring("property Text")] HRESULT Text([in] long ItemNum, [out, retval] BSTR *pVal);
[propput, id(0), helpstring("property Text")] HRESULT Text([in] long ItemNum, [in] BSTR newVal);
[propget, id(1), helpstring("property Long")] HRESULT Long([out, retval] long *pVal);
[propput, id(1), helpstring("property Long")] HRESULT Long([in] long newVal);
[id(4), helpstring("method Clear")] HRESULT Clear();
[id(5), helpstring("method CopyDataToFile")] HRESULT CopyDataToFile(BSTR FileName);
[id(6), helpstring("method CopyDataFromFile")] HRESULT CopyDataFromFile(BSTR FileName);
[propget, id(7), helpstring("property NumTextItems")] HRESULT NumTextItems([out, retval] long *pVal);
[propget, id(8), helpstring("property Binary")] HRESULT Binary([out, retval] BSTR *pVal);
[propput, id(8), helpstring("property Binary")] HRESULT Binary([in] BSTR newVal);
};
[
object,
uuid(AEBA98BE-C36C-11D3-841B-0008C782A257),
dual,
helpstring("IID3ComFrame Interface"),
pointer_default(unique)
]
interface IID3ComFrame : IDispatch
{
[propget, id(1), helpstring("property Field")] HRESULT Field([in] eID3FieldTypes FieldType, [out, retval] IID3ComField** pVal);
[id(2), helpstring("method Clear")] HRESULT Clear();
[propget, id(3), helpstring("property ID")] HRESULT ID([out, retval] eID3FrameTypes *pVal);
[propput, id(3), helpstring("property ID")] HRESULT ID([in] eID3FrameTypes newVal);
[propget, id(4), helpstring("property FrameName")] HRESULT FrameName([out, retval] BSTR *pVal);
[propget, id(5), helpstring("property Compressed")] HRESULT Compressed([out, retval] VARIANT_BOOL *pVal);
[propput, id(5), helpstring("property Compressed")] HRESULT Compressed([in] VARIANT_BOOL newVal);
};
[
object,
uuid(AEBA98BC-C36C-11D3-841B-0008C782A257),
dual,
helpstring("IID3ComTag Interface"),
pointer_default(unique)
]
interface IID3ComTag : IDispatch
{
[id(1), helpstring("method Link")] HRESULT Link(BSTR* FileName);
[id(2), helpstring("method Clear")] HRESULT Clear();
[propget, id(3), helpstring("property HasChanged")] HRESULT HasChanged([out, retval] VARIANT_BOOL *pVal);
[id(4), helpstring("method FindFrame")] HRESULT FindFrame([in] eID3FrameTypes FrameID, [in, defaultvalue(TRUE)] VARIANT_BOOL CreateNewIfNotFound, [out, retval] IID3ComFrame** pVal);
[propget, id(5), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in] long FrameNum, [out, retval] IID3ComFrame** pVal);
[id(7), helpstring("method SaveV1Tag")] HRESULT SaveV1Tag();
[id(8), helpstring("method StripV1Tag")] HRESULT StripV1Tag();
[id(9), helpstring("method SaveV2Tag")] HRESULT SaveV2Tag();
[id(10), helpstring("method StripV2Tag")] HRESULT StripV2Tag();
[propget, id(11), helpstring("property Artist")] HRESULT Artist([out, retval] BSTR *pVal);
[propput, id(11), helpstring("property Artist")] HRESULT Artist([in] BSTR newVal);
[propget, id(12), helpstring("property Album")] HRESULT Album([out, retval] BSTR *pVal);
[propput, id(12), helpstring("property Album")] HRESULT Album([in] BSTR newVal);
[propget, id(13), helpstring("property Title")] HRESULT Title([out, retval] BSTR *pVal);
[propput, id(13), helpstring("property Title")] HRESULT Title([in] BSTR newVal);
[propget, id(14), helpstring("property Comment")] HRESULT Comment([out, retval] BSTR *pVal);
[propput, id(14), helpstring("property Comment")] HRESULT Comment([in] BSTR newVal);
[propget, id(15), helpstring("property Genre")] HRESULT Genre([out, retval] long *pVal);
[propput, id(15), helpstring("property Genre")] HRESULT Genre([in] long newVal);
[propget, id(16), helpstring("property Year")] HRESULT Year([out, retval] BSTR *pVal);
[propput, id(16), helpstring("property Year")] HRESULT Year([in] BSTR newVal);
[propget, id(17), helpstring("property Track")] HRESULT Track([out, retval] long *pVal);
[propput, id(17), helpstring("property Track")] HRESULT Track([in] long newVal);
[propget, id(18), helpstring("property LastPlayed")] HRESULT LastPlayed([out, retval] DATE *pVal);
[propput, id(18), helpstring("property LastPlayed")] HRESULT LastPlayed([in] DATE newVal);
[propget, id(19), helpstring("property HasV1Tag")] HRESULT HasV1Tag([out, retval] VARIANT_BOOL *pVal);
[propget, id(20), helpstring("property HasV2Tag")] HRESULT HasV2Tag([out, retval] VARIANT_BOOL *pVal);
[propget, id(21), helpstring("property HasLyrics")] HRESULT HasLyrics([out, retval] VARIANT_BOOL *pVal);
[id(22), helpstring("method FindFrameString")] HRESULT FindFrameString([in] eID3FrameTypes FrameID, [in] eID3FieldTypes FieldType, [in] BSTR FindString, [in, defaultvalue(TRUE)] VARIANT_BOOL CreateNewIfNotFound, [out, retval] IID3ComFrame** pVal);
[propget, id(23), helpstring("property PlayCount")] HRESULT PlayCount([in] BSTR EMailAddress, [out, retval] long *pVal);
[propput, id(23), helpstring("property PlayCount")] HRESULT PlayCount([in] BSTR EMailAddress, [in] long newVal);
[propget, id(24), helpstring("property Popularity")] HRESULT Popularity([in] BSTR EMailAddress, [out, retval] short *pVal);
[propput, id(24), helpstring("property Popularity")] HRESULT Popularity([in] BSTR EMailAddress, [in] short newVal);
[propget, id(25), helpstring("property TagCreated")] HRESULT TagCreated([out, retval] DATE *pVal);
[propput, id(25), helpstring("property TagCreated")] HRESULT TagCreated([in] DATE newVal);
[propget, id(26), helpstring("property PercentVolumeAdjust")] HRESULT PercentVolumeAdjust([out, retval] double *pVal);
[propput, id(26), helpstring("property PercentVolumeAdjust")] HRESULT PercentVolumeAdjust([in] double newVal);
[propput, id(27), helpstring("property Padding")] HRESULT Padding([in] VARIANT_BOOL newVal);
[propput, id(28), helpstring("property UnSync")] HRESULT UnSync([in] VARIANT_BOOL newVal);
[propget, id(29), helpstring("property VersionString")] HRESULT VersionString([out, retval] BSTR *pVal);
[id(35), helpstring("method RemoveFrame")] HRESULT RemoveFrame([in] eID3FrameTypes FrameID);
[id(37), helpstring("method RemoveFrameByNum")] HRESULT RemoveFrameByNum([in] long FrameNum);
[propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown** pRetVal);
};
[
uuid(AEBA98B0-C36C-11D3-841B-0008C782A257),
version(1.0),
helpstring("ID3COM 1.0 Type Library")
]
library ID3COM
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(AEBA98BD-C36C-11D3-841B-0008C782A257),
helpstring("ID3ComTag Class")
]
coclass ID3ComTag
{
[default] interface IID3ComTag;
};
[
uuid(AEBA98BF-C36C-11D3-841B-0008C782A257),
helpstring("ID3ComFrame Class"),
noncreatable
]
coclass ID3ComFrame
{
[default] interface IID3ComFrame;
};
[
uuid(A513A24F-C749-11D3-841C-0008C782A257),
helpstring("ID3ComField Class"),
noncreatable
]
coclass ID3ComField
{
[default] interface IID3ComField;
};
};
|