[1166] | 1 | cpp_quote("/**")
|
---|
| 2 | cpp_quote(" * This file is part of the mingw-w64 runtime package.")
|
---|
| 3 | cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
|
---|
| 4 | cpp_quote(" */")
|
---|
| 5 | cpp_quote("")
|
---|
| 6 |
|
---|
| 7 | import "unknwn.idl";
|
---|
| 8 | import "propsys.idl";
|
---|
| 9 | import "mfidl.idl";
|
---|
| 10 | import "evr.idl";
|
---|
| 11 |
|
---|
| 12 | cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)")
|
---|
| 13 | interface IMFPMediaPlayer;
|
---|
| 14 | interface IMFPMediaItem;
|
---|
| 15 | interface IMFPMediaPlayerCallback;
|
---|
| 16 | interface IMFMediaEvent;
|
---|
| 17 | interface IMFNetCredential;
|
---|
| 18 | cpp_quote("")
|
---|
| 19 | cpp_quote("interface IMFMediaEvent;")
|
---|
| 20 | cpp_quote("interface IMFNetCredential;")
|
---|
| 21 |
|
---|
| 22 | cpp_quote("")
|
---|
| 23 | typedef UINT32 MFP_CREATION_OPTIONS;
|
---|
| 24 | cpp_quote("")
|
---|
| 25 | typedef [v1_enum] enum _MFP_CREATION_OPTIONS {
|
---|
| 26 | MFP_OPTION_NONE = 0x00,
|
---|
| 27 | MFP_OPTION_FREE_THREADED_CALLBACK = 0x01,
|
---|
| 28 | MFP_OPTION_NO_MMCSS = 0x02,
|
---|
| 29 | MFP_OPTION_NO_REMOTE_DESKTOP_OPTIMIZATION = 0x04,
|
---|
| 30 | } _MFP_CREATION_OPTIONS;
|
---|
| 31 |
|
---|
| 32 | cpp_quote("")
|
---|
| 33 | typedef [v1_enum] enum MFP_MEDIAPLAYER_STATE {
|
---|
| 34 | MFP_MEDIAPLAYER_STATE_EMPTY = 0x00,
|
---|
| 35 | MFP_MEDIAPLAYER_STATE_STOPPED = 0x01,
|
---|
| 36 | MFP_MEDIAPLAYER_STATE_PLAYING = 0x02,
|
---|
| 37 | MFP_MEDIAPLAYER_STATE_PAUSED = 0x03,
|
---|
| 38 | MFP_MEDIAPLAYER_STATE_SHUTDOWN = 0x04,
|
---|
| 39 | } MFP_MEDIAPLAYER_STATE;
|
---|
| 40 |
|
---|
| 41 | cpp_quote("")
|
---|
| 42 | typedef UINT32 MFP_MEDIAITEM_CHARACTERISTICS;
|
---|
| 43 | cpp_quote("")
|
---|
| 44 | typedef [v1_enum] enum _MFP_MEDIAITEM_CHARACTERISTICS {
|
---|
| 45 | MFP_MEDIAITEM_IS_LIVE = 0x01,
|
---|
| 46 | MFP_MEDIAITEM_CAN_SEEK = 0x02,
|
---|
| 47 | MFP_MEDIAITEM_CAN_PAUSE = 0x04,
|
---|
| 48 | MFP_MEDIAITEM_HAS_SLOW_SEEK = 0x08,
|
---|
| 49 | } _MFP_MEDIAITEM_CHARACTERISTICS;
|
---|
| 50 |
|
---|
| 51 | cpp_quote("")
|
---|
| 52 | typedef UINT32 MFP_CREDENTIAL_FLAGS;
|
---|
| 53 | cpp_quote("")
|
---|
| 54 | typedef [v1_enum] enum _MFP_CREDENTIAL_FLAGS{
|
---|
| 55 | MFP_CREDENTIAL_PROMPT = 0x01,
|
---|
| 56 | MFP_CREDENTIAL_SAVE = 0x02,
|
---|
| 57 | MFP_CREDENTIAL_DO_NOT_CACHE = 0x04,
|
---|
| 58 | MFP_CREDENTIAL_CLEAR_TEXT = 0x08,
|
---|
| 59 | MFP_CREDENTIAL_PROXY = 0x10,
|
---|
| 60 | MFP_CREDENTIAL_LOGGED_ON_USER = 0x20,
|
---|
| 61 | } _MFP_CREDENTIAL_FLAGS;
|
---|
| 62 |
|
---|
| 63 | cpp_quote("STDAPI MFPCreateMediaPlayer(LPCWSTR pwszURL, BOOL fStartPlayback, MFP_CREATION_OPTIONS creationOptions, IMFPMediaPlayerCallback * pCallback, HWND hWnd, IMFPMediaPlayer ** ppMediaPlayer);")
|
---|
| 64 |
|
---|
| 65 | cpp_quote("")
|
---|
| 66 | [local, object, uuid(A714590A-58AF-430a-85BF-44F5EC838D85),]
|
---|
| 67 | interface IMFPMediaPlayer : IUnknown {
|
---|
| 68 | HRESULT Play();
|
---|
| 69 | HRESULT Pause();
|
---|
| 70 | HRESULT Stop();
|
---|
| 71 | HRESULT FrameStep();
|
---|
| 72 | HRESULT SetPosition([in, annotation("__in")] REFGUID guidPositionType, [in] const PROPVARIANT * pvPositionValue);
|
---|
| 73 | HRESULT GetPosition([in] REFGUID guidPositionType, [out] PROPVARIANT * pvPositionValue);
|
---|
| 74 | HRESULT GetDuration([in] REFGUID guidPositionType, [out] PROPVARIANT * pvDurationValue);
|
---|
| 75 | HRESULT SetRate([in] float flRate);
|
---|
| 76 | HRESULT GetRate([out] float *pflRate);
|
---|
| 77 | HRESULT GetSupportedRates([in] BOOL fForwardDirection, [out] float *pflSlowestRate, [out] float *pflFastestRate);
|
---|
| 78 | HRESULT GetState([out] MFP_MEDIAPLAYER_STATE * peState);
|
---|
| 79 | HRESULT CreateMediaItemFromURL([in] LPCWSTR pwszURL, [in] BOOL fSync, [in] DWORD_PTR dwUserData, [out] IMFPMediaItem ** ppMediaItem);
|
---|
| 80 | HRESULT CreateMediaItemFromObject([in] IUnknown * pIUnknownObj, [in] BOOL fSync, [in] DWORD_PTR dwUserData, [out] IMFPMediaItem ** ppMediaItem);
|
---|
| 81 | HRESULT SetMediaItem([in] IMFPMediaItem * pIMFPMediaItem);
|
---|
| 82 | HRESULT ClearMediaItem();
|
---|
| 83 | HRESULT GetMediaItem([out]IMFPMediaItem ** ppIMFPMediaItem);
|
---|
| 84 | HRESULT GetVolume([out] float *pflVolume);
|
---|
| 85 | HRESULT SetVolume([in] float flVolume);
|
---|
| 86 | HRESULT GetBalance([out] float *pflBalance);
|
---|
| 87 | HRESULT SetBalance([in] float flBalance);
|
---|
| 88 | HRESULT GetMute([out] BOOL * pfMute);
|
---|
| 89 | HRESULT SetMute([in] BOOL fMute);
|
---|
| 90 | HRESULT GetNativeVideoSize([out] SIZE *pszVideo, [out] SIZE *pszARVideo);
|
---|
| 91 | HRESULT GetIdealVideoSize([out] SIZE *pszMin, [out] SIZE *pszMax );
|
---|
| 92 | HRESULT SetVideoSourceRect([in] MFVideoNormalizedRect const *pnrcSource);
|
---|
| 93 | HRESULT GetVideoSourceRect([out] MFVideoNormalizedRect *pnrcSource);
|
---|
| 94 | HRESULT SetAspectRatioMode([in] DWORD dwAspectRatioMode);
|
---|
| 95 | HRESULT GetAspectRatioMode([out] DWORD *pdwAspectRatioMode);
|
---|
| 96 | HRESULT GetVideoWindow([out] HWND *phwndVideo );
|
---|
| 97 | HRESULT UpdateVideo();
|
---|
| 98 | HRESULT SetBorderColor([in] COLORREF Clr);
|
---|
| 99 | HRESULT GetBorderColor([out] COLORREF *pClr );
|
---|
| 100 | HRESULT InsertEffect([in, annotation("__in")] IUnknown * pEffect, [in] BOOL fOptional);
|
---|
| 101 | HRESULT RemoveEffect([in] IUnknown * pEffect);
|
---|
| 102 | HRESULT RemoveAllEffects();
|
---|
| 103 | HRESULT Shutdown();
|
---|
| 104 | };
|
---|
| 105 |
|
---|
| 106 | cpp_quote("EXTERN_GUID( MFP_POSITIONTYPE_100NS, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 );")
|
---|
| 107 | cpp_quote("")
|
---|
| 108 | [local, object, uuid(90EB3E6B-ECBF-45cc-B1DA-C6FE3EA70D57),]
|
---|
| 109 | interface IMFPMediaItem : IUnknown {
|
---|
| 110 | HRESULT GetMediaPlayer([out] IMFPMediaPlayer ** ppMediaPlayer );
|
---|
| 111 | HRESULT GetURL([out] LPWSTR * ppwszURL );
|
---|
| 112 | HRESULT GetObject([out] IUnknown ** ppIUnknown );
|
---|
| 113 | HRESULT GetUserData([out] DWORD_PTR * pdwUserData );
|
---|
| 114 | HRESULT SetUserData([in] DWORD_PTR dwUserData );
|
---|
| 115 | HRESULT GetStartStopPosition([out] GUID * pguidStartPositionType, [out] PROPVARIANT * pvStartValue, [out] GUID * pguidStopPositionType, [out] PROPVARIANT * pvStopValue);
|
---|
| 116 | HRESULT SetStartStopPosition([in] const GUID * pguidStartPositionType, [in] const PROPVARIANT * pvStartValue, [in] const GUID * pguidStopPositionType, [in] const PROPVARIANT * pvStopValue);
|
---|
| 117 | HRESULT HasVideo([out] BOOL * pfHasVideo, [out] BOOL * pfSelected);
|
---|
| 118 | HRESULT HasAudio([out] BOOL * pfHasAudio, [out] BOOL * pfSelected);
|
---|
| 119 | HRESULT IsProtected([out] BOOL * pfProtected);
|
---|
| 120 | HRESULT GetDuration([in] REFGUID guidPositionType, [out] PROPVARIANT * pvDurationValue);
|
---|
| 121 | HRESULT GetNumberOfStreams([out] DWORD * pdwStreamCount);
|
---|
| 122 | HRESULT GetStreamSelection([in] DWORD dwStreamIndex, [out] BOOL * pfEnabled);
|
---|
| 123 | HRESULT SetStreamSelection([in] DWORD dwStreamIndex,[in] BOOL fEnabled);
|
---|
| 124 | HRESULT GetStreamAttribute([in] DWORD dwStreamIndex, [in] REFGUID guidMFAttribute, [out] PROPVARIANT * pvValue);
|
---|
| 125 | HRESULT GetPresentationAttribute([in] REFGUID guidMFAttribute, [out] PROPVARIANT * pvValue);
|
---|
| 126 | HRESULT GetCharacteristics([out] MFP_MEDIAITEM_CHARACTERISTICS * pCharacteristics);
|
---|
| 127 | HRESULT SetStreamSink([in] DWORD dwStreamIndex, [in] IUnknown* pMediaSink);
|
---|
| 128 | HRESULT GetMetadata([out] IPropertyStore** ppMetadataStore );
|
---|
| 129 | };
|
---|
| 130 |
|
---|
| 131 | cpp_quote("")
|
---|
| 132 | typedef enum MFP_EVENT_TYPE {
|
---|
| 133 | MFP_EVENT_TYPE_PLAY = 0,
|
---|
| 134 | MFP_EVENT_TYPE_PAUSE = 1,
|
---|
| 135 | MFP_EVENT_TYPE_STOP = 2,
|
---|
| 136 | MFP_EVENT_TYPE_POSITION_SET = 3,
|
---|
| 137 | MFP_EVENT_TYPE_RATE_SET = 4,
|
---|
| 138 | MFP_EVENT_TYPE_MEDIAITEM_CREATED = 5,
|
---|
| 139 | MFP_EVENT_TYPE_MEDIAITEM_SET = 6,
|
---|
| 140 | MFP_EVENT_TYPE_FRAME_STEP = 7,
|
---|
| 141 | MFP_EVENT_TYPE_MEDIAITEM_CLEARED = 8,
|
---|
| 142 | MFP_EVENT_TYPE_MF = 9,
|
---|
| 143 | MFP_EVENT_TYPE_ERROR = 10,
|
---|
| 144 | MFP_EVENT_TYPE_PLAYBACK_ENDED = 11,
|
---|
| 145 | MFP_EVENT_TYPE_ACQUIRE_USER_CREDENTIAL = 12,
|
---|
| 146 | }
|
---|
| 147 | MFP_EVENT_TYPE;
|
---|
| 148 |
|
---|
| 149 | cpp_quote("")
|
---|
| 150 | typedef struct MFP_EVENT_HEADER {
|
---|
| 151 | MFP_EVENT_TYPE eEventType;
|
---|
| 152 | HRESULT hrEvent;
|
---|
| 153 | IMFPMediaPlayer * pMediaPlayer;
|
---|
| 154 | MFP_MEDIAPLAYER_STATE eState;
|
---|
| 155 | IPropertyStore * pPropertyStore;
|
---|
| 156 | } MFP_EVENT_HEADER;
|
---|
| 157 |
|
---|
| 158 |
|
---|
| 159 | cpp_quote("")
|
---|
| 160 | typedef struct MFP_PLAY_EVENT {
|
---|
| 161 | MFP_EVENT_HEADER header;
|
---|
| 162 | IMFPMediaItem * pMediaItem;
|
---|
| 163 | } MFP_PLAY_EVENT;
|
---|
| 164 |
|
---|
| 165 |
|
---|
| 166 | cpp_quote("")
|
---|
| 167 | typedef struct MFP_PAUSE_EVENT {
|
---|
| 168 | MFP_EVENT_HEADER header;
|
---|
| 169 | IMFPMediaItem * pMediaItem;
|
---|
| 170 | } MFP_PAUSE_EVENT;
|
---|
| 171 |
|
---|
| 172 | cpp_quote("")
|
---|
| 173 | typedef struct MFP_STOP_EVENT {
|
---|
| 174 | MFP_EVENT_HEADER header;
|
---|
| 175 | IMFPMediaItem * pMediaItem;
|
---|
| 176 | } MFP_STOP_EVENT;
|
---|
| 177 |
|
---|
| 178 | cpp_quote("")
|
---|
| 179 | typedef struct MFP_POSITION_SET_EVENT {
|
---|
| 180 | MFP_EVENT_HEADER header;
|
---|
| 181 | IMFPMediaItem * pMediaItem;
|
---|
| 182 | } MFP_POSITION_SET_EVENT;
|
---|
| 183 |
|
---|
| 184 | cpp_quote("")
|
---|
| 185 | typedef struct MFP_RATE_SET_EVENT {
|
---|
| 186 | MFP_EVENT_HEADER header;
|
---|
| 187 | IMFPMediaItem * pMediaItem;
|
---|
| 188 | float flRate;
|
---|
| 189 | } MFP_RATE_SET_EVENT;
|
---|
| 190 |
|
---|
| 191 | cpp_quote("")
|
---|
| 192 | typedef struct MFP_MEDIAITEM_CREATED_EVENT {
|
---|
| 193 | MFP_EVENT_HEADER header;
|
---|
| 194 | IMFPMediaItem * pMediaItem;
|
---|
| 195 | DWORD_PTR dwUserData;
|
---|
| 196 | } MFP_MEDIAITEM_CREATED_EVENT;
|
---|
| 197 |
|
---|
| 198 | cpp_quote("")
|
---|
| 199 | typedef struct MFP_MEDIAITEM_SET_EVENT {
|
---|
| 200 | MFP_EVENT_HEADER header;
|
---|
| 201 | IMFPMediaItem * pMediaItem;
|
---|
| 202 | } MFP_MEDIAITEM_SET_EVENT;
|
---|
| 203 |
|
---|
| 204 | cpp_quote("")
|
---|
| 205 | typedef struct MFP_FRAME_STEP_EVENT {
|
---|
| 206 | MFP_EVENT_HEADER header;
|
---|
| 207 | IMFPMediaItem * pMediaItem;
|
---|
| 208 | } MFP_FRAME_STEP_EVENT;
|
---|
| 209 |
|
---|
| 210 | cpp_quote("")
|
---|
| 211 | typedef struct MFP_MEDIAITEM_CLEARED_EVENT {
|
---|
| 212 | MFP_EVENT_HEADER header;
|
---|
| 213 | IMFPMediaItem * pMediaItem;
|
---|
| 214 | } MFP_MEDIAITEM_CLEARED_EVENT;
|
---|
| 215 |
|
---|
| 216 | cpp_quote("")
|
---|
| 217 | typedef struct MFP_MF_EVENT {
|
---|
| 218 | MFP_EVENT_HEADER header;
|
---|
| 219 | MediaEventType MFEventType;
|
---|
| 220 | IMFMediaEvent * pMFMediaEvent;
|
---|
| 221 | IMFPMediaItem * pMediaItem;
|
---|
| 222 | } MFP_MF_EVENT;
|
---|
| 223 |
|
---|
| 224 | cpp_quote("")
|
---|
| 225 | typedef struct MFP_ERROR_EVENT {
|
---|
| 226 | MFP_EVENT_HEADER header;
|
---|
| 227 | } MFP_ERROR_EVENT;
|
---|
| 228 |
|
---|
| 229 | cpp_quote("")
|
---|
| 230 | typedef struct MFP_PLAYBACK_ENDED_EVENT {
|
---|
| 231 | MFP_EVENT_HEADER header;
|
---|
| 232 | IMFPMediaItem * pMediaItem;
|
---|
| 233 | } MFP_PLAYBACK_ENDED_EVENT;
|
---|
| 234 |
|
---|
| 235 | cpp_quote("")
|
---|
| 236 | typedef struct MFP_ACQUIRE_USER_CREDENTIAL_EVENT {
|
---|
| 237 | MFP_EVENT_HEADER header;
|
---|
| 238 | DWORD_PTR dwUserData;
|
---|
| 239 | BOOL fProceedWithAuthentication;
|
---|
| 240 | HRESULT hrAuthenticationStatus;
|
---|
| 241 | LPCWSTR pwszURL;
|
---|
| 242 | LPCWSTR pwszSite;
|
---|
| 243 | LPCWSTR pwszRealm;
|
---|
| 244 | LPCWSTR pwszPackage;
|
---|
| 245 | LONG nRetries;
|
---|
| 246 | MFP_CREDENTIAL_FLAGS flags;
|
---|
| 247 | IMFNetCredential * pCredential;
|
---|
| 248 | } MFP_ACQUIRE_USER_CREDENTIAL_EVENT;
|
---|
| 249 |
|
---|
| 250 | cpp_quote("EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFP_PKEY_StreamIndex = { { 0xa7cf9740, 0xe8d9, 0x4a87, { 0xbd, 0x8e, 0x29, 0x67, 0x0, 0x1f, 0xd3, 0xad } }, 0x00 };")
|
---|
| 251 |
|
---|
| 252 | cpp_quote("EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFP_PKEY_StreamRenderingResults = { { 0xa7cf9740, 0xe8d9, 0x4a87, { 0xbd, 0x8e, 0x29, 0x67, 0x0, 0x1f, 0xd3, 0xad } }, 0x01 };")
|
---|
| 253 |
|
---|
| 254 | cpp_quote("#define __MFP_CAST_EVENT( pHdr, Tag ) (((pHdr)->eEventType == MFP_EVENT_TYPE_##Tag ) ? (MFP_##Tag##_EVENT*)(pHdr) : NULL)")
|
---|
| 255 |
|
---|
| 256 | cpp_quote("#define MFP_GET_PLAY_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, PLAY )")
|
---|
| 257 | cpp_quote("#define MFP_GET_PAUSE_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, PAUSE )")
|
---|
| 258 | cpp_quote("#define MFP_GET_STOP_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, STOP )")
|
---|
| 259 | cpp_quote("#define MFP_GET_POSITION_SET_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, POSITION_SET )")
|
---|
| 260 | cpp_quote("#define MFP_GET_RATE_SET_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, RATE_SET )")
|
---|
| 261 | cpp_quote("#define MFP_GET_MEDIAITEM_CREATED_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MEDIAITEM_CREATED )")
|
---|
| 262 | cpp_quote("#define MFP_GET_MEDIAITEM_SET_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MEDIAITEM_SET )")
|
---|
| 263 | cpp_quote("#define MFP_GET_FRAME_STEP_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, FRAME_STEP )")
|
---|
| 264 | cpp_quote("#define MFP_GET_MEDIAITEM_CLEARED_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MEDIAITEM_CLEARED )")
|
---|
| 265 | cpp_quote("#define MFP_GET_MF_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MF )")
|
---|
| 266 | cpp_quote("#define MFP_GET_ERROR_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, ERROR )")
|
---|
| 267 | cpp_quote("#define MFP_GET_PLAYBACK_ENDED_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, PLAYBACK_ENDED )")
|
---|
| 268 | cpp_quote("#define MFP_GET_ACQUIRE_USER_CREDENTIAL_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, ACQUIRE_USER_CREDENTIAL )")
|
---|
| 269 |
|
---|
| 270 | cpp_quote("")
|
---|
| 271 | [local, object, uuid(766C8FFB-5FDB-4fea-A28D-B912996F51BD),]
|
---|
| 272 | interface IMFPMediaPlayerCallback : IUnknown {
|
---|
| 273 | void OnMediaPlayerEvent([in] MFP_EVENT_HEADER * pEventHeader);
|
---|
| 274 | };
|
---|
| 275 | cpp_quote("#endif // (WINVER >= _WIN32_WINNT_WIN7)")
|
---|