www.pudn.com > eMule0.47c-Sources.zip > id3com.idl


///////////////////////////////////////////////////////////////////////////// 
// 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; 
	}; 
};