/* * Copyright 2014 Jacek Caban for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "oaidl.idl"; import "ocidl.idl"; #ifndef __WIDL__ #define threading(model) #define progid(str) #define vi_progid(str) #endif [ helpstring("Windows Media Player"), version(1.0), uuid(6bf52a50-394a-11d3-b153-00c04f79Faa6) ] library WMPLib { importlib("stdole2.tlb"); typedef enum { wmposUndefined, wmposPlaylistChanging, wmposPlaylistLocating, wmposPlaylistConnecting, wmposPlaylistLoading, wmposPlaylistOpening, wmposPlaylistOpenNoMedia, wmposPlaylistChanged, wmposMediaChanging, wmposMediaLocating, wmposMediaConnecting, wmposMediaLoading, wmposMediaOpening, wmposMediaOpen, wmposBeginCodecAcquisition, wmposEndCodecAcquisition, wmposBeginLicenseAcquisition, wmposEndLicenseAcquisition, wmposBeginIndividualization, wmposEndIndividualization, wmposMediaWaiting, wmposOpeningUnknownURL } WMPOpenState; typedef enum { wmppsUndefined, wmppsStopped, wmppsPaused, wmppsPlaying, wmppsScanForward, wmppsScanReverse, wmppsBuffering, wmppsWaiting, wmppsMediaEnded, wmppsTransitioning, wmppsReady, wmppsReconnecting, wmppsLast } WMPPlayState; typedef enum { wmplcUnknown, wmplcClear, wmplcInfoChange, wmplcMove, wmplcDelete, wmplcInsert, wmplcAppend, wmplcPrivate, wmplcNameChange, wmplcMorph, wmplcSort, wmplcLast } WMPPlaylistChangeEventType; typedef enum { wmpdsUnknown, wmpdsPartnershipExists, wmpdsPartnershipDeclined, wmpdsPartnershipAnother, wmpdsManualDevice, wmpdsNewDevice, wmpdsLast } WMPDeviceStatus; typedef enum { wmpssUnknown, wmpssSynchronizing, wmpssStopped, wmpssEstimating, wmpssLast } WMPSyncState; typedef enum { wmprsUnknown, wmprsRipping, wmprsStopped } WMPRipState; typedef enum { wmpbfAudioCD, wmpbfDataCD } WMPBurnFormat; typedef enum { wmpbsUnknown, wmpbsBusy, wmpbsReady, wmpbsWaitingForDisc, wmpbsRefreshStatusPending, wmpbsPreparingToBurn, wmpbsBurning, wmpbsStopped, wmpbsErasing, wmpbsDownloading } WMPBurnState; typedef enum { wmpltUnknown, wmpltAll, wmpltLocal, wmpltRemote, wmpltDisc, wmpltPortableDevice } WMPLibraryType; typedef enum { wmpfssUnknown, wmpfssScanning, wmpfssUpdating, wmpfssStopped } WMPFolderScanState; typedef enum { wmpsccetUnknown, wmpsccetInsert, wmpsccetChange, wmpsccetDelete, wmpsccetClear, wmpsccetBeginUpdates, wmpsccetEndUpdates } WMPStringCollectionChangeEventType; interface IWMPMedia; [ odl, uuid(d5f0f4f1-130c-11d3-b14e-00c04f79Faa6), dual, oleautomation ] interface IWMPPlaylist : IDispatch { [id(0x00c9), propget] HRESULT count([out, retval] long *plCount); [id(0x00ca), propget] HRESULT name([out, retval] BSTR *pbstrName); [id(0x00ca), propput] HRESULT name([in] BSTR pbstrName); [id(0x00d2), propget] HRESULT attributeCount([out, retval] long *plCount); [id(0x00d3), propget] HRESULT attributeName( [in] long lIndex, [out, retval] BSTR *pbstrAttributeName); [id(0x00d4), propget] HRESULT Item( [in] long lIndex, [out, retval] IWMPMedia** ppIWMPMedia); [id(0x00cb)] HRESULT getItemInfo( [in] BSTR bstrName, [out, retval] BSTR *pbstrVal); [id(0x00cc)] HRESULT setItemInfo( [in] BSTR bstrName, [in] BSTR bstrValue); [id(0x00d5), propget] HRESULT isIdentical( [in] IWMPPlaylist *pIWMPPlaylist, [out, retval] VARIANT_BOOL *pvbool); [id(0x00cd)] HRESULT clear(); [id(0x00ce)] HRESULT insertItem( [in] long lIndex, [in] IWMPMedia *pIWMPMedia); [id(0x00cf)] HRESULT appendItem([in] IWMPMedia *pIWMPMedia); [id(0x00d0)] HRESULT removeItem([in] IWMPMedia *pIWMPMedia); [id(0x00d1)] HRESULT moveItem( long lIndexOld, long lIndexNew); } [ odl, uuid(94d55e95-3Fac-11d3-b155-00c04f79faa6), dual, oleautomation ] interface IWMPMedia : IDispatch { [id(0x02fb), propget] HRESULT isIdentical( [in] IWMPMedia *pIWMPMedia, [out, retval] VARIANT_BOOL *pvbool); [id(0x02ef), propget] HRESULT sourceURL([out, retval] BSTR *pbstrSourceURL); [id(0x02fc), propget] HRESULT name([out, retval] BSTR *pbstrName); [id(0x02fc), propput] HRESULT name([in] BSTR pbstrName); [id(0x02f0), propget] HRESULT imageSourceWidth([out, retval] long *pWidth); [id(0x02f1), propget] HRESULT imageSourceHeight([out, retval] long *pHeight); [id(0x02f2), propget] HRESULT markerCount([out, retval] long *pMarkerCount); [id(0x02f3)] HRESULT getMarkerTime( [in] long MarkerNum, [out, retval] double *pMarkerTime); [id(0x02f4)] HRESULT getMarkerName( [in] long MarkerNum, [out, retval] BSTR *pbstrMarkerName); [id(0x02f5), propget] HRESULT duration([out, retval] double *pDuration); [id(0x02f6), propget] HRESULT durationString([out, retval] BSTR *pbstrDuration); [id(0x02f7), propget] HRESULT attributeCount([out, retval] long *plCount); [id(0x02f8)] HRESULT getAttributeName( [in] long lIndex, [out, retval] BSTR *pbstrItemName); [id(0x02f9)] HRESULT getItemInfo( [in] BSTR bstrItemName, [out, retval] BSTR *pbstrVal); [id(0x02fa)] HRESULT setItemInfo( [in] BSTR bstrItemName, [in] BSTR bstrVal); [id(0x02fd)] HRESULT getItemInfoByAtom( [in] long lAtom, [out, retval] BSTR *pbstrVal); [id(0x02fe)] HRESULT isMemberOf( [in] IWMPPlaylist *pPlaylist, [out, retval] VARIANT_BOOL *pvarfIsMemberOf); [id(0x02ff)] HRESULT isReadOnlyItem( [in] BSTR bstrItemName, [out, retval] VARIANT_BOOL *pvarfIsReadOnly); } [ odl, uuid(74c09E02-f828-11d2-a74b-00a0c905f36e), dual, oleautomation ] interface IWMPControls : IDispatch { [id(0x003e), propget] HRESULT isAvailable( [in] BSTR bstrItem, [out, retval] VARIANT_BOOL *pIsAvailable); [id(0x0033)] HRESULT play(); [id(0x0034)] HRESULT stop(); [id(0x0035)] HRESULT pause(); [id(0x0036)] HRESULT fastForward(); [id(0x0037)] HRESULT fastReverse(); [id(0x0038), propget] HRESULT currentPosition([out, retval] double *pdCurrentPosition); [id(0x0038), propput] HRESULT currentPosition([in] double pdCurrentPosition); [id(0x0039), propget] HRESULT currentPositionString([out, retval] BSTR *pbstrCurrentPosition); [id(0x003a)] HRESULT next(); [id(0x003b)] HRESULT previous(); [id(0x003c)] HRESULT currentItem([out, retval] IWMPMedia **ppIWMPMedia); [id(0x003c), propput] HRESULT currentItem([in] IWMPMedia *ppIWMPMedia); [id(0x003d), propget] HRESULT currentMarker([out, retval] long *plMarker); [id(0x003d), propput] HRESULT currentMarker([in] long plMarker); [id(0x003f)] HRESULT playItem([in] IWMPMedia *pIWMPMedia); } [ odl, uuid(9104d1ab-80c9-4fed-abf0-2e6417a6df14), dual, oleautomation ] interface IWMPSettings : IDispatch { [id(0x0071), propget] HRESULT isAvailable( [in] BSTR bstrItem, [out, retval] VARIANT_BOOL *pIsAvailable); [id(0x0065), propget] HRESULT autoStart([out, retval] VARIANT_BOOL *pfAutoStart); [id(0x0065), propput] HRESULT autoStart([in] VARIANT_BOOL pfAutoStart); [id(0x006c), propget] HRESULT baseURL([out, retval] BSTR *pbstrBaseURL); [id(0x006c), propput] HRESULT baseURL([in] BSTR pbstrBaseURL); [id(0x006d), propget] HRESULT defaultFrame([out, retval] BSTR *pbstrDefaultFrame); [id(0x006d), propput] HRESULT defaultFrame([in] BSTR pbstrDefaultFrame); [id(0x0067), propget] HRESULT invokeURLs([out, retval] VARIANT_BOOL *pfInvokeURLs); [id(0x0067), propput] HRESULT invokeURLs([in] VARIANT_BOOL pfInvokeURLs); [id(0x0068), propget] HRESULT mute([out, retval] VARIANT_BOOL *pfMute); [id(0x0068), propput] HRESULT mute([in] VARIANT_BOOL pfMute); [id(0x0069), propget] HRESULT playCount([out, retval] long *plCount); [id(0x0069), propput] HRESULT playCount([in] long plCount); [id(0x006a), propget] HRESULT rate([out, retval] double *pdRate); [id(0x006a), propput] HRESULT rate([in] double pdRate); [id(0x0066), propget] HRESULT balance([out, retval] long *plBalance); [id(0x0066), propput] HRESULT balance([in] long plBalance); [id(0x006b), propget] HRESULT volume([out, retval] long *plVolume); [id(0x006b), propput] HRESULT volume([in] long plVolume); [id(0x006e)] HRESULT getMode( [in] BSTR bstrMode, [out, retval] VARIANT_BOOL *pvarfMode); [id(0x006f)] HRESULT setMode( [in] BSTR bstrMode, [in] VARIANT_BOOL varfMode); [id(0x0070), propget] HRESULT enableErrorDialogs([out, retval] VARIANT_BOOL *pfEnableErrorDialogs); [id(0x0070), propput] HRESULT enableErrorDialogs([in] VARIANT_BOOL pfEnableErrorDialogs); } [ odl, uuid(4a976298-8c0d-11d3-b389-00c04f68574b), dual, oleautomation ] interface IWMPStringCollection : IDispatch { [id(0x0191), propget] HRESULT count([out, retval] long *plCount); [id(0x0192)] HRESULT Item( [in] long lIndex, [out, retval] BSTR *pbstrString); } [ odl, uuid(8363bc22-b4b4-4b19-989d-1cd765749dd1), dual, oleautomation ] interface IWMPMediaCollection : IDispatch { [id(0x01c4)] HRESULT add( [in] BSTR bstrURL, [out, retval] IWMPMedia **ppItem); [id(0x01c5)] HRESULT getAll([out, retval] IWMPPlaylist **ppMediaItems); [id(0x01c6)] HRESULT getByName( [in] BSTR bstrName, [out, retval] IWMPPlaylist **ppMediaItems); [id(0x01c7)] HRESULT getByGenre( [in] BSTR bstrGenre, [out, retval] IWMPPlaylist **ppMediaItems); [id(0x01c8)] HRESULT getByAuthor( [in] BSTR bstrAuthor, [out, retval] IWMPPlaylist **ppMediaItems); [id(0x01c9)] HRESULT getByAlbum( [in] BSTR bstrAlbum, [out, retval] IWMPPlaylist **ppMediaItems); [id(0x01ca)] HRESULT getByAttribute( [in] BSTR bstrAttribute, [in] BSTR bstrValue, [out, retval] IWMPPlaylist **ppMediaItems); [id(0x01cb)] HRESULT remove( [in] IWMPMedia *pItem, [in] VARIANT_BOOL varfDeleteFile); [id(0x01cd)] HRESULT getAttributeStringCollection( [in] BSTR bstrAttribute, [in] BSTR bstrMediaType, [out, retval] IWMPStringCollection **ppStringCollection); [id(0x01d6)] HRESULT getMediaAtom( [in] BSTR bstrItemName, [out, retval] long *plAtom); [id(0x01d7)] HRESULT setDeleted( [in] IWMPMedia *pItem, [in] VARIANT_BOOL varfIsDeleted); [id(0x01d8)] HRESULT isDeleted( [in] IWMPMedia *pItem, [out, retval] VARIANT_BOOL *pvarfIsDeleted); } [ odl, uuid(679409c0-99f7-11d3-9fb7-00105aa620bb), dual, oleautomation ] interface IWMPPlaylistArray : IDispatch { [id(0x01f5), propget] HRESULT count([out, retval] long *plCount); [id(0x01f6)] HRESULT Item( [in] long lIndex, [out, retval] IWMPPlaylist **ppItem); } [ odl, uuid(10a13217-23a7-439b-b1c0-d847c79b7774), dual, oleautomation ] interface IWMPPlaylistCollection : IDispatch { [id(0x0228)] HRESULT newPlaylist( [in] BSTR bstrName, [out, retval] IWMPPlaylist **ppItem); [id(0x0229)] HRESULT getAll([out, retval] IWMPPlaylistArray **ppPlaylistArray); [id(0x022a)] HRESULT getByName( [in] BSTR bstrName, [out, retval] IWMPPlaylistArray **ppPlaylistArray); [id(0x022c)] HRESULT remove([in] IWMPPlaylist *pItem); [id(0x0230)] HRESULT setDeleted( [in] IWMPPlaylist *pItem, [in] VARIANT_BOOL varfIsDeleted); [id(0x0231)] HRESULT isDeleted( [in] IWMPPlaylist *pItem, [out, retval] VARIANT_BOOL *pvarfIsDeleted); [id(0x0232)] HRESULT importPlaylist( [in] IWMPPlaylist *pItem, [out, retval] IWMPPlaylist **ppImportedItem); } [ odl, uuid(ec21b779-edef-462d-bba4-ad9dde2b29a7), dual, oleautomation ] interface IWMPNetwork : IDispatch { [id(0x0321), propget] HRESULT bandWidth([out, retval] long *plBandwidth); [id(0x0322), propget] HRESULT recoveredPackets([out, retval] long *plRecoveredPackets); [id(0x0323), propget] HRESULT sourceProtocol([out, retval] BSTR *pbstrSourceProtocol); [id(0x0324), propget] HRESULT receivedPackets([out, retval] long *plReceivedPackets); [id(0x0325), propget] HRESULT lostPackets([out, retval] long *plLostPackets); [id(0x0326), propget] HRESULT receptionQuality([out, retval] long *plReceptionQuality); [id(0x0327), propget] HRESULT bufferingCount([out, retval] long *plBufferingCount); [id(0x0328), propget] HRESULT bufferingProgress([out, retval] long *plBufferingProgress); [id(0x0329), propget] HRESULT bufferingTime([out, retval] long *plBufferingTime); [id(0x0329), propput] HRESULT bufferingTime([in] long plBufferingTime); [id(0x032a), propget] HRESULT frameRate([out, retval] long *plFrameRate); [id(0x032b), propget] HRESULT maxBitRate([out, retval] long *plBitRate); [id(0x032c), propget] HRESULT bitRate([out, retval] long *plBitRate); [id(0x032d)] HRESULT getProxySettings( [in] BSTR bstrProtocol, [out, retval] long *plProxySetting); [id(0x032e)] HRESULT setProxySettings( [in] BSTR bstrProtocol, [in] long lProxySetting); [id(0x032f)] HRESULT getProxyName( [in] BSTR bstrProtocol, [out, retval] BSTR *pbstrProxyName); [id(0x0330)] HRESULT setProxyName( [in] BSTR bstrProtocol, [in] BSTR bstrProxyName); [id(0x0331)] HRESULT getProxyPort( [in] BSTR bstrProtocol, [out, retval] long *lProxyPort); [id(0x0332)] HRESULT setProxyPort( [in] BSTR bstrProtocol, [in] long lProxyPort); [id(0x0333)] HRESULT getProxyExceptionList( [in] BSTR bstrProtocol, [out, retval] BSTR *pbstrExceptionList); [id(0x0334)] HRESULT setProxyExceptionList( [in] BSTR bstrProtocol, [in] BSTR pbstrExceptionList); [id(0x0335)] HRESULT getProxyBypassForLocal( [in] BSTR bstrProtocol, [out, retval] VARIANT_BOOL *pfBypassForLocal); [id(0x0336)] HRESULT setProxyBypassForLocal( [in] BSTR bstrProtocol, [in] VARIANT_BOOL fBypassForLocal); [id(0x0337), propget] HRESULT maxBandwidth([out, retval] long *lMaxBandwidth); [id(0x0337), propput] HRESULT maxBandwidth([in] long lMaxBandwidth); [id(0x0338), propget] HRESULT downloadProgress([out, retval] long *plDownloadProgress); [id(0x0339), propget] HRESULT encodedFrameRate([out, retval] long *plFrameRate); [id(0x033a), propget] HRESULT framesSkipped([out, retval] long *plFrames); } [ odl, uuid(cfab6e98-8730-11d3-b388-00c04f68574b), dual, oleautomation ] interface IWMPCdrom : IDispatch { [id(0x00fb), propget] HRESULT driveSpecifier([out, retval] BSTR *pbstrDrive); [id(0x00fc), propget] HRESULT Playlist([out, retval] IWMPPlaylist **ppPlaylist); [id(0x00fd)] HRESULT eject(); } [ odl, uuid(ee4c8fe2-34b2-11d3-a3bf-006097c9b344), dual, oleautomation ] interface IWMPCdromCollection : IDispatch { [id(0x012d), propget] HRESULT count([out, retval] long *plCount); [id(0x012e)] HRESULT Item( [in] long lIndex, [out, retval] IWMPCdrom **ppItem); [id(0x012f)] HRESULT getByDriveSpecifier( [in] BSTR bstrDriveSpecifier, [out, retval] IWMPCdrom **ppCdrom); } [ odl, uuid(8da61686-4668-4a5c-ae5d-803193293dbe), dual, oleautomation ] interface IWMPDVD : IDispatch { [id(0x03e9), propget] HRESULT isAvailable( [in] BSTR bstrItem, [out, retval] VARIANT_BOOL *pIsAvailable); [id(0x03ea), propget] HRESULT domain([out, retval] BSTR *strDomain); [id(0x03eb)] HRESULT topMenu(); [id(0x03ec)] HRESULT titleMenu(); [id(0x03ed)] HRESULT back(); [id(0x03ee)] HRESULT resume(); } [ odl, uuid(4f2df574-c588-11d3-9ed0-00c04fb6e937), dual, oleautomation ] interface IWMPClosedCaption : IDispatch { [id(0x03b7), propget] HRESULT SAMIStyle([out, retval] BSTR *pbstrSAMIStyle); [id(0x03b7), propput] HRESULT SAMIStyle([in] BSTR pbstrSAMIStyle); [id(0x03b8), propget] HRESULT SAMILang([out, retval] BSTR *pbstrSAMILang); [id(0x03b8), propput] HRESULT SAMILang([in] BSTR pbstrSAMILang); [id(0x03b9), propget] HRESULT SAMIFileName([out, retval] BSTR *pbstrSAMIFileName); [id(0x03b9), propput] HRESULT SAMIFileName([in] BSTR pbstrSAMIFileName); [id(0x03ba), propget] HRESULT captioningId([out, retval] BSTR *pbstrCaptioningID); [id(0x03ba), propput] HRESULT captioningId([in] BSTR pbstrCaptioningID); } [ odl, uuid(3614c646-3b3b-4de7-a81e-930e3f2127b3), dual, oleautomation ] interface IWMPErrorItem : IDispatch { [id(0x0385), propget] HRESULT errorCode([out, retval] long *phr); [id(0x0386), propget] HRESULT errorDescription([out, retval] BSTR *pbstrDescription); [id(0x0387), propget] HRESULT errorContext([out, retval] VARIANT *pvarContext); [id(0x0388), propget] HRESULT remedy([out, retval] long *plRemedy); [id(0x0389), propget] HRESULT customUrl([out, retval] BSTR *pbstrCustomUrl); } [ odl, uuid(a12dcf7d-14ab-4c1b-a8cd-63909f06025b), dual, oleautomation ] interface IWMPError : IDispatch { [id(0x0353)] HRESULT clearErrorQueue(); [id(0x0354), propget] HRESULT errorCount([out, retval] long *plNumErrors); [id(0x0355), propget] HRESULT Item( [in] long dwIndex, [out, retval] IWMPErrorItem **ppErrorItem); [id(0x0356)] HRESULT webHelp(); } [ odl, uuid(40897764-ceab-47be-ad4a-8e28537f9bbf), dual, oleautomation ] interface IWMPPlayerApplication : IDispatch { [id(0x044d)] HRESULT switchToPlayerApplication(); [id(0x044e)] HRESULT switchToControl(); [id(0x044f), propget] HRESULT playerDocked([out, retval] VARIANT_BOOL* pbPlayerDocked); [id(0x0450), propget] HRESULT hasDisplay([out, retval] VARIANT_BOOL *pbHasDisplay); } [ odl, uuid(d84cca99-cce2-11d2-9ecc-0000f8085981), dual, oleautomation ] interface IWMPCore : IDispatch { [id(0x0003)] HRESULT close(); [id(0x0001), propget] HRESULT URL([out, retval] BSTR *pbstrURL); [id(0x0001), propput] HRESULT URL([in] BSTR pbstrURL); [id(0x0002), propget] HRESULT openState([out, retval] WMPOpenState *pwmpos); [id(0x000a), propget] HRESULT playState([out, retval] WMPPlayState *pwmpps); [id(0x0004), propget] HRESULT controls([out, retval] IWMPControls **ppControl); [id(0x0005), propget] HRESULT settings([out, retval] IWMPSettings **ppSettings); [id(0x0006), propget] HRESULT currentMedia([out, retval] IWMPMedia **ppMedia); [id(0x0006), propput] HRESULT currentMedia([in] IWMPMedia *ppMedia); [id(0x0008), propget] HRESULT mediaCollection([out, retval] IWMPMediaCollection **ppMediaCollection); [id(0x0009), propget] HRESULT playlistCollection([out, retval] IWMPPlaylistCollection **ppPlaylistCollection); [id(0x000b), propget] HRESULT versionInfo([out, retval] BSTR *pbstrVersionInfo); [id(0x000c)] HRESULT launchURL([in] BSTR bstrURL); [id(0x0007), propget] HRESULT network([out, retval] IWMPNetwork **ppQNI); [id(0x000d), propget] HRESULT currentPlaylist([out, retval] IWMPPlaylist **ppPL); [id(0x000d), propput] HRESULT currentPlaylist([in] IWMPPlaylist *ppPL); [id(0x000e), propget] HRESULT cdromCollection([out, retval] IWMPCdromCollection **ppCdromCollection); [id(0x000f), propget] HRESULT closedCaption([out, retval] IWMPClosedCaption **ppClosedCaption); [id(0x0010), propget] HRESULT isOnline([out, retval] VARIANT_BOOL *pfOnline); [id(0x0011), propget] HRESULT Error([out, retval] IWMPError **ppError); [id(0x0012), propget] HRESULT status([out, retval] BSTR *pbstrStatus); } [ odl, uuid(bc17e5B7-7561-4c18-bb90-17d485775659), dual, oleautomation ] interface IWMPCore2 : IWMPCore { [id(0x0028), propget] HRESULT dvd([out, retval] IWMPDVD **ppDVD); } [ odl, uuid(7587c667-628f-499f-88e7-6A6f4e888464), dual, oleautomation ] interface IWMPCore3 : IWMPCore2 { [id(0x0029)] HRESULT newPlaylist( [in] BSTR bstrName, [in] BSTR bstrURL, [out, retval] IWMPPlaylist **ppPlaylist); [id(0x002a)] HRESULT newMedia( [in] BSTR bstrURL, [out, retval] IWMPMedia **ppMedia); } [ odl, uuid(6c497d62-8919-413c-82db-e935fb3ec584), dual, oleautomation ] interface IWMPPlayer4 : IWMPCore3 { [id(0x0013), propget] HRESULT enabled([out, retval] VARIANT_BOOL *pbEnabled); [id(0x0013), propput] HRESULT enabled([in] VARIANT_BOOL pbEnabled); [id(0x0015), propget] HRESULT fullScreen([out, retval] VARIANT_BOOL *pbFullScreen); [id(0x0015), propput] HRESULT fullScreen(VARIANT_BOOL pbFullScreen); [id(0x0016), propget] HRESULT enableContextMenu([out, retval] VARIANT_BOOL *pbEnableContextMenu); [id(0x0016), propput] HRESULT enableContextMenu(VARIANT_BOOL pbEnableContextMenu); [id(0x0017), propput] HRESULT uiMode([in] BSTR pbstrMode); [id(0x0017), propget] HRESULT uiMode([out, retval] BSTR *pbstrMode); [id(0x0018), propget] HRESULT stretchToFit([out, retval] VARIANT_BOOL *pbEnabled); [id(0x0018), propput] HRESULT stretchToFit([in] VARIANT_BOOL pbEnabled); [id(0x0019), propget] HRESULT windowlessVideo([out, retval] VARIANT_BOOL *pbEnabled); [id(0x0019), propput] HRESULT windowlessVideo([in] VARIANT_BOOL pbEnabled); [id(0x001a), propget] HRESULT isRemote([out, retval] VARIANT_BOOL *pvarfIsRemote); [id(0x001b), propget] HRESULT playerApplication([out, retval] IWMPPlayerApplication **ppIWMPPlayerApplication); [id(0x001c)] HRESULT openPlayer([in] BSTR bstrURL); } [ odl, uuid(6BF52A4F-394A-11D3-B153-00C04F79FAA6), dual, oleautomation ] interface IWMPPlayer : IWMPCore { [id(0x00000013), propget] HRESULT enabled([out, retval] VARIANT_BOOL* pbEnabled); [id(0x00000013), propput] HRESULT enabled([in] VARIANT_BOOL pbEnabled); [id(0x00000015), propget] HRESULT fullScreen([out, retval] VARIANT_BOOL* pbFullScreen); [id(0x00000015), propput] HRESULT fullScreen(VARIANT_BOOL pbFullScreen); [id(0x00000016), propget] HRESULT enableContextMenu([out, retval] VARIANT_BOOL* pbEnableContextMenu); [id(0x00000016), propput] HRESULT enableContextMenu(VARIANT_BOOL pbEnableContextMenu); [id(0x00000017), propput] HRESULT uiMode([in] BSTR pbstrMode); [id(0x00000017), propget] HRESULT uiMode([out, retval] BSTR* pbstrMode); }; [ odl, uuid(82a2986c-0293-4fd0-b279-b21b86c058be), oleautomation ] interface IWMPSyncDevice : IUnknown { [propget] HRESULT friendlyName([out, retval] BSTR *name); [propput] HRESULT friendlyName([in] BSTR name); [propget] HRESULT deviceName([out, retval] BSTR *name); [propget] HRESULT deviceId([out, retval] BSTR *device); [propget] HRESULT partnershipIndex([out, retval] long *index); [propget] HRESULT connected([out, retval] VARIANT_BOOL *connected); [propget] HRESULT status([out, retval] WMPDeviceStatus *status); [propget] HRESULT syncState([out, retval] WMPSyncState *state); [propget] HRESULT progress([out, retval] long *progress); HRESULT getItemInfo( [in] BSTR name, [out, retval] BSTR *val); HRESULT createPartnership([in] VARIANT_BOOL showui); HRESULT deletePartnership(); HRESULT start(); HRESULT stop(); HRESULT showSettings(); HRESULT isIdentical( [in] IWMPSyncDevice *device, [out, retval] VARIANT_BOOL *ret); } [ odl, uuid(88afb4b2-140a-44d2-91e6-4543da467cd1), oleautomation ] interface IWMPSyncDevice2 : IWMPSyncDevice { HRESULT setItemInfo( [in] BSTR name, [in] BSTR val); } [ odl, uuid(56e2294f-69ed-4629-a869-aea72c0dcc2c), oleautomation ] interface IWMPCdromRip : IUnknown { [propget] HRESULT ripState([out, retval] WMPRipState *state); [propget] HRESULT ripProgress([out, retval] long *progress); HRESULT startRip(); HRESULT stopRip(); } [ odl, uuid(bd94dbeb-417f-4928-aa06-087d56ed9b59), oleautomation ] interface IWMPCdromBurn : IUnknown { HRESULT isAvailable( [in] BSTR item, [out, retval] VARIANT_BOOL *available); HRESULT getItemInfo( [in] BSTR item, [out, retval] BSTR *val); [propget] HRESULT label([out, retval] BSTR *label); [propput] HRESULT label([in] BSTR label); [propget] HRESULT burnFormat([out, retval] WMPBurnFormat *format); [propput] HRESULT burnFormat([in] WMPBurnFormat format); [propget] HRESULT burnPlaylist([out, retval] IWMPPlaylist **playlist); [propput] HRESULT burnPlaylist([in] IWMPPlaylist *playlist); HRESULT refreshStatus(); [propget] HRESULT burnState([out, retval] WMPBurnState *state); [propget] HRESULT burnProgress([out, retval] long *progress); HRESULT startBurn(); HRESULT stopBurn(); HRESULT erase(); } [ odl, uuid(3df47861-7df1-4c1f-a81b-4c26f0f7a7c6), oleautomation ] interface IWMPLibrary : IUnknown { [propget] HRESULT name([out, retval] BSTR *name); [propget] HRESULT type([out, retval] WMPLibraryType *type); [propget] HRESULT mediaCollection([out, retval] IWMPMediaCollection **collection); HRESULT isIdentical( [in] IWMPLibrary *wmplibrary, [out, retval] VARIANT_BOOL *ret); } [ uuid(19a6627b-da9e-47c1-bb23-00b5e668236a), odl ] interface IWMPEvents : IUnknown { void OpenStateChange([in] long state); void PlayStateChange([in] long state); void AudioLanguageChange([in] long lang); void StatusChange(); void ScriptCommand( [in] BSTR type, [in] BSTR param); void NewStream(); void Disconnect([in] long result); void Buffering([in] VARIANT_BOOL start); void Error(); void Warning( [in] long warning, [in] long param, [in] BSTR description); void EndOfStream([in] long result); void PositionChange( [in] double old_position, [in] double new_position); void MarkerHit([in] long marker); void DurationUnitChange([in] long duration); void CdromMediaChange([in] long num); void PlaylistChange( [in] IDispatch *playlist, [in] WMPPlaylistChangeEventType change); void CurrentPlaylistChange([in] WMPPlaylistChangeEventType change); void CurrentPlaylistItemAvailable([in] BSTR item); void MediaChange([in] IDispatch *item); void CurrentMediaItemAvailable([in] BSTR name); void CurrentItemChange([in] IDispatch *media); void MediaCollectionChange(); void MediaCollectionAttributeStringAdded( [in] BSTR name, [in] BSTR val); void MediaCollectionAttributeStringRemoved( [in] BSTR name, [in] BSTR val); void MediaCollectionAttributeStringChanged( [in] BSTR name, [in] BSTR old_val, [in] BSTR new_val); void PlaylistCollectionChange(); void PlaylistCollectionPlaylistAdded([in] BSTR name); void PlaylistCollectionPlaylistRemoved([in] BSTR name); void PlaylistCollectionPlaylistSetAsDeleted( [in] BSTR name, [in] VARIANT_BOOL deleted); void ModeChange( [in] BSTR ModeName, [in] VARIANT_BOOL value); void MediaError([in] IDispatch *media); void OpenPlaylistSwitch([in] IDispatch *item); void DomainChange([in] BSTR domain); void SwitchedToPlayerApplication(); void SwitchedToControl(); void PlayerDockedStateChange(); void PlayerReconnect(); void Click( [in] short button, [in] short shift_state, [in] long x, [in] long y); void DoubleClick( [in] short button, [in] short shift_state, [in] long fX, [in] long fY); void KeyDown( [in] short keycode, [in] short shift_state); void KeyPress([in] short ascii); void KeyUp( [in] short keycode, [in] short shift_state); void MouseDown( [in] short button, [in] short nShiftState, [in] long x, [in] long y); void MouseMove( [in] short button, [in] short shift_state, [in] long x, [in] long y); void MouseUp( [in] short button, [in] short shift_state, [in] long x, [in] long y); } [ uuid(1e7601fa-47ea-4107-9ea9-9004ed9684ff), odl ] interface IWMPEvents2 : IWMPEvents { void DeviceConnect([in] IWMPSyncDevice *device); void DeviceDisconnect([in] IWMPSyncDevice *device); void DeviceStatusChange( [in] IWMPSyncDevice *device, [in] WMPDeviceStatus status); void DeviceSyncStateChange( [in] IWMPSyncDevice *device, [in] WMPSyncState state); void DeviceSyncError( [in] IWMPSyncDevice *device, [in] IDispatch *media); void CreatePartnershipComplete( [in] IWMPSyncDevice *device, [in] HRESULT result); } [ uuid(1f504270-a66b-4223-8e96-26a06c63d69f), odl ] interface IWMPEvents3 : IWMPEvents2 { void CdromRipStateChange( [in] IWMPCdromRip *rip, [in] WMPRipState state); void CdromRipMediaError( [in] IWMPCdromRip *rip, [in] IDispatch *media); void CdromBurnStateChange( [in] IWMPCdromBurn *burn, [in] WMPBurnState state); void CdromBurnMediaError( [in] IWMPCdromBurn *burn, [in] IDispatch *media); void CdromBurnError( [in] IWMPCdromBurn *burn, [in] HRESULT error); void LibraryConnect( [in] IWMPLibrary *wmplibrary); void LibraryDisconnect( [in] IWMPLibrary *wmplibrary); void FolderScanStateChange( [in] WMPFolderScanState state); void StringCollectionChange( [in] IDispatch *collection, [in] WMPStringCollectionChangeEventType change, [in] long index); void MediaCollectionMediaAdded( [in] IDispatch *media); void MediaCollectionMediaRemoved( [in] IDispatch *media); } [ uuid(26dabcfa-306b-404d-9a6f-630a8405048d), odl ] interface IWMPEvents4 : IWMPEvents3 { void DeviceEstimation( [in] IWMPSyncDevice *device, [in] HRESULT result, [in] LONGLONG used_space, [in] LONGLONG estimated_space); } [ hidden, uuid(6bf52a51-394a-11d3-b153-00c04f79faa6) ] interface _WMPOCXEvents : IDispatch {} [ helpstring("Windows Media Player"), threading(apartment), progid("WMPlayer.OCX.7"), vi_progid("WMPlayer.OCX"), uuid(6bf52a52-394a-11d3-b153-00c04f79faa6) ] coclass WindowsMediaPlayer { [default] interface IWMPPlayer4; /* interface IWMPPlayer3; */ /* interface IWMPPlayer2; */ interface IWMPPlayer; interface IWMPControls; interface IWMPSettings; interface IWMPPlaylist; interface IWMPMedia; interface IWMPMediaCollection; interface IWMPPlaylistCollection; interface IWMPCdromCollection; interface IWMPError; interface IWMPErrorItem; /* interface IWMPErrorItem2; */ interface IWMPClosedCaption; interface IWMPDVD; /* interface IWMPControls2; */ /* interface IWMPMedia2; */ /* interface IWMPMedia3; */ /* interface IWMPMetadataPicture; */ /* interface IWMPMetadataText; */ /* interface IWMPSettings2; */ /* interface IWMPControls3; */ /* interface IWMPClosedCaption2; */ /* interface IWMPMediaCollection2; */ /* interface IWMPStringCollection2; */ [default, source] dispinterface _WMPOCXEvents; } }