[PATCH 1/2] include: Add IWMPEvents/2/3/4 and supporting interfaces

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Sat Aug 5 19:28:41 CDT 2017


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 include/wmp.idl | 463 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 463 insertions(+)

diff --git a/include/wmp.idl b/include/wmp.idl
index c077b08..f1319b1 100644
--- a/include/wmp.idl
+++ b/include/wmp.idl
@@ -74,6 +74,89 @@ library WMPLib {
         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;
 
     [
@@ -925,6 +1008,386 @@ library WMPLib {
     }
 
     [
+        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 x,
+            [in] long y);
+
+        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
+    {
+        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
+    {
+        void DeviceEstimation(
+            [in] IWMPSyncDevice *device,
+            [in] HRESULT result,
+            [in] LONGLONG used_space,
+            [in] LONGLONG estimated_space);
+    }
+
+    [
         hidden,
         uuid(6bf52a51-394a-11d3-b153-00c04f79faa6)
     ]
-- 
1.9.1




More information about the wine-patches mailing list