[PATCH 1/2] include: Added IMFSourceResolver definition
Nikolay Sivov
nsivov at codeweavers.com
Sun May 28 06:42:47 CDT 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
include/mfidl.idl | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/include/mfidl.idl b/include/mfidl.idl
index 3431260cf0..2002ad35fd 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -38,6 +38,13 @@ typedef enum _MFCLOCK_STATE
MFCLOCK_STATE_PAUSED
} MFCLOCK_STATE;
+typedef enum MF_OBJECT_TYPE
+{
+ MF_OBJECT_MEDIASOURCE,
+ MF_OBJECT_BYTESTREAM,
+ MF_OBJECT_INVALID
+} MF_OBJECT_TYPE;
+
typedef struct _MFCLOCK_PROPERTIES
{
unsigned __int64 qwCorrelationRate;
@@ -124,3 +131,34 @@ interface IMFMediaSession : IMFMediaEventGenerator
HRESULT GetSessionCapabilities([out] DWORD *caps);
HRESULT GetFullTopology([in] DWORD flags, [in] TOPOID id, [out] IMFTopology **topology);
}
+
+[
+ object,
+ uuid(fbe5a32d-a497-4b61-bb85-97b1a848a6e3)
+]
+interface IMFSourceResolver : IUnknown
+{
+ [local] HRESULT CreateObjectFromURL([in] const WCHAR *url, [in] DWORD flags, [in] IPropertyStore *props,
+ [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
+ [local] HRESULT CreateObjectFromByteStream([in] IMFByteStream *stream, [in] const WCHAR *url, [in] DWORD flags,
+ [in] IPropertyStore *props, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
+ [local] HRESULT BeginCreateObjectFromURL([in] const WCHAR *url, [in] DWORD flags, [in] IPropertyStore *props,
+ [out] IUnknown **cancel_cookie, [in] IMFAsyncCallback *callback, [in] IUnknown *unk_state);
+ [call_as(BeginCreateObjectFromURL)] HRESULT RemoteBeginCreateObjectFromURL([in, string] const WCHAR *url,
+ [in] DWORD flags, [in] IPropertyStore *props, [in] IMFRemoteAsyncCallback *callback);
+ [local] HRESULT EndCreateObjectFromURL([in] IMFAsyncResult *result, [out] MF_OBJECT_TYPE *obj_type,
+ [out] IUnknown **object);
+ [call_as(EndCreateObjectFromURL)] HRESULT RemoteEndCreateObjectFromURL([in] IUnknown *result,
+ [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
+ [local] HRESULT BeginCreateObjectFromByteStream([in] IMFByteStream *stream, [in] const WCHAR *url,
+ [in] DWORD flags, [in] IPropertyStore *props, [out] IUnknown **cancel_cookie,
+ [in] IMFAsyncCallback *callback, [in] IUnknown *unk_state);
+ [call_as(BeginCreateObjectFromByteStream)] HRESULT RemoteBeginCreateObjectFromByteStream([in] IMFByteStream *stream,
+ [in, unique] const WCHAR *url, [in] DWORD flags, [in, unique] IPropertyStore *props,
+ [in] IMFRemoteAsyncCallback *callback);
+ [local] HRESULT EndCreateObjectFromByteStream([in] IMFAsyncResult *result, [out] MF_OBJECT_TYPE *obj_type,
+ [out] IUnknown **object);
+ [call_as(EndCreateObjectFromByteStream)] HRESULT RemoteEndCreateObjectFromByteStream([in] IUnknown *result,
+ [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
+ [local] HRESULT CanceObjectCreation([in] IUnknown *cancel_cookie);
+}
--
2.11.0
More information about the wine-patches
mailing list