Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
8d996644
Commit
8d996644
authored
Feb 20, 2019
by
Nikolay Sivov
Committed by
Alexandre Julliard
Feb 20, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mf: Add attributes store to topology object.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
73b50a24
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
222 additions
and
230 deletions
+222
-230
Makefile.in
dlls/mf/Makefile.in
+1
-0
topology.c
dlls/mf/topology.c
+221
-230
No files found.
dlls/mf/Makefile.in
View file @
8d996644
MODULE
=
mf.dll
IMPORTLIB
=
mf
IMPORTS
=
mfplat
C_SRCS
=
\
main.c
\
...
...
dlls/mf/topology.c
View file @
8d996644
...
...
@@ -24,34 +24,37 @@
#include "windef.h"
#include "winbase.h"
#include "initguid.h"
#include "mfapi.h"
#include "mfidl.h"
#include "wine/debug.h"
#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
mfplat
);
typedef
struct
mf
topology
struct
topology
{
IMFTopology
IMFTopology_iface
;
LONG
ref
;
}
mftopology
;
LONG
refcount
;
IMFAttributes
*
attributes
;
};
static
inline
mf
topology
*
impl_from_IMFTopology
(
IMFTopology
*
iface
)
static
inline
struct
topology
*
impl_from_IMFTopology
(
IMFTopology
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
mf
topology
,
IMFTopology_iface
);
return
CONTAINING_RECORD
(
iface
,
struct
topology
,
IMFTopology_iface
);
}
static
HRESULT
WINAPI
mf
topology_QueryInterface
(
IMFTopology
*
iface
,
REFIID
riid
,
void
**
out
)
static
HRESULT
WINAPI
topology_QueryInterface
(
IMFTopology
*
iface
,
REFIID
riid
,
void
**
out
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
TRACE
(
"(%p)->(%s %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
out
);
TRACE
(
"(%p)->(%s %p)
\n
"
,
iface
,
debugstr_guid
(
riid
),
out
);
if
(
IsEqualIID
(
riid
,
&
IID_IMFTopology
)
||
IsEqualIID
(
riid
,
&
IID_IMFAttributes
)
||
IsEqualIID
(
riid
,
&
IID_IUnknown
))
{
*
out
=
&
This
->
IMFTopology_iface
;
*
out
=
&
topology
->
IMFTopology_iface
;
}
else
{
...
...
@@ -64,440 +67,421 @@ static HRESULT WINAPI mftopology_QueryInterface(IMFTopology *iface, REFIID riid,
return
S_OK
;
}
static
ULONG
WINAPI
mf
topology_AddRef
(
IMFTopology
*
iface
)
static
ULONG
WINAPI
topology_AddRef
(
IMFTopology
*
iface
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
ULONG
ref
=
InterlockedIncrement
(
&
This
->
ref
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
ULONG
ref
count
=
InterlockedIncrement
(
&
topology
->
refcount
);
TRACE
(
"(%p) ref
=%u
\n
"
,
This
,
ref
);
TRACE
(
"(%p) ref
count=%u
\n
"
,
iface
,
refcount
);
return
ref
;
return
ref
count
;
}
static
ULONG
WINAPI
mf
topology_Release
(
IMFTopology
*
iface
)
static
ULONG
WINAPI
topology_Release
(
IMFTopology
*
iface
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
ULONG
ref
=
InterlockedDecrement
(
&
This
->
ref
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
ULONG
ref
count
=
InterlockedDecrement
(
&
topology
->
refcount
);
TRACE
(
"(%p) ref
=%u
\n
"
,
This
,
ref
);
TRACE
(
"(%p) ref
count=%u
\n
"
,
iface
,
refcount
);
if
(
!
ref
)
if
(
!
ref
count
)
{
HeapFree
(
GetProcessHeap
(),
0
,
This
);
IMFAttributes_Release
(
topology
->
attributes
);
heap_free
(
topology
);
}
return
ref
;
return
ref
count
;
}
static
HRESULT
WINAPI
mf
topology_GetItem
(
IMFTopology
*
iface
,
REFGUID
key
,
PROPVARIANT
*
value
)
static
HRESULT
WINAPI
topology_GetItem
(
IMFTopology
*
iface
,
REFGUID
key
,
PROPVARIANT
*
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
);
return
E_NOTIMPL
;
return
IMFAttributes_GetItem
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_GetItemType
(
IMFTopology
*
iface
,
REFGUID
key
,
MF_ATTRIBUTE_TYPE
*
type
)
static
HRESULT
WINAPI
topology_GetItemType
(
IMFTopology
*
iface
,
REFGUID
key
,
MF_ATTRIBUTE_TYPE
*
type
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
type
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
type
);
return
E_NOTIMPL
;
return
IMFAttributes_GetItemType
(
topology
->
attributes
,
key
,
type
)
;
}
static
HRESULT
WINAPI
mf
topology_CompareItem
(
IMFTopology
*
iface
,
REFGUID
key
,
REFPROPVARIANT
value
,
BOOL
*
result
)
static
HRESULT
WINAPI
topology_CompareItem
(
IMFTopology
*
iface
,
REFGUID
key
,
REFPROPVARIANT
value
,
BOOL
*
result
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
,
result
);
TRACE
(
"(%p)->(%s, %p, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
,
result
);
return
E_NOTIMPL
;
return
IMFAttributes_CompareItem
(
topology
->
attributes
,
key
,
value
,
result
)
;
}
static
HRESULT
WINAPI
mf
topology_Compare
(
IMFTopology
*
iface
,
IMFAttributes
*
theirs
,
MF_ATTRIBUTES_MATCH_TYPE
type
,
static
HRESULT
WINAPI
topology_Compare
(
IMFTopology
*
iface
,
IMFAttributes
*
theirs
,
MF_ATTRIBUTES_MATCH_TYPE
type
,
BOOL
*
result
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p, %d, %p)
\n
"
,
This
,
theirs
,
type
,
result
);
TRACE
(
"(%p)->(%p, %d, %p)
\n
"
,
iface
,
theirs
,
type
,
result
);
return
E_NOTIMPL
;
return
IMFAttributes_Compare
(
topology
->
attributes
,
theirs
,
type
,
result
)
;
}
static
HRESULT
WINAPI
mf
topology_GetUINT32
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
*
value
)
static
HRESULT
WINAPI
topology_GetUINT32
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
*
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
);
return
E_NOTIMPL
;
return
IMFAttributes_GetUINT32
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_GetUINT64
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT64
*
value
)
static
HRESULT
WINAPI
topology_GetUINT64
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT64
*
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
);
return
E_NOTIMPL
;
return
IMFAttributes_GetUINT64
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_GetDouble
(
IMFTopology
*
iface
,
REFGUID
key
,
double
*
value
)
static
HRESULT
WINAPI
topology_GetDouble
(
IMFTopology
*
iface
,
REFGUID
key
,
double
*
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
);
return
E_NOTIMPL
;
return
IMFAttributes_GetDouble
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_GetGUID
(
IMFTopology
*
iface
,
REFGUID
key
,
GUID
*
value
)
static
HRESULT
WINAPI
topology_GetGUID
(
IMFTopology
*
iface
,
REFGUID
key
,
GUID
*
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
);
return
E_NOTIMPL
;
return
IMFAttributes_GetGUID
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_GetStringLength
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
*
length
)
static
HRESULT
WINAPI
topology_GetStringLength
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
*
length
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
length
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
length
);
return
E_NOTIMPL
;
return
IMFAttributes_GetStringLength
(
topology
->
attributes
,
key
,
length
)
;
}
static
HRESULT
WINAPI
mf
topology_GetString
(
IMFTopology
*
iface
,
REFGUID
key
,
WCHAR
*
value
,
static
HRESULT
WINAPI
topology_GetString
(
IMFTopology
*
iface
,
REFGUID
key
,
WCHAR
*
value
,
UINT32
size
,
UINT32
*
length
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p, %d, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
,
size
,
length
);
TRACE
(
"(%p)->(%s, %p, %d, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
,
size
,
length
);
return
E_NOTIMPL
;
return
IMFAttributes_GetString
(
topology
->
attributes
,
key
,
value
,
size
,
length
)
;
}
static
HRESULT
WINAPI
mf
topology_GetAllocatedString
(
IMFTopology
*
iface
,
REFGUID
key
,
static
HRESULT
WINAPI
topology_GetAllocatedString
(
IMFTopology
*
iface
,
REFGUID
key
,
WCHAR
**
value
,
UINT32
*
length
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
value
,
length
);
TRACE
(
"(%p)->(%s, %p, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
,
length
);
return
E_NOTIMPL
;
return
IMFAttributes_GetAllocatedString
(
topology
->
attributes
,
key
,
value
,
length
)
;
}
static
HRESULT
WINAPI
mf
topology_GetBlobSize
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
*
size
)
static
HRESULT
WINAPI
topology_GetBlobSize
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
*
size
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
size
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
size
);
return
E_NOTIMPL
;
return
IMFAttributes_GetBlobSize
(
topology
->
attributes
,
key
,
size
)
;
}
static
HRESULT
WINAPI
mf
topology_GetBlob
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT8
*
buf
,
static
HRESULT
WINAPI
topology_GetBlob
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT8
*
buf
,
UINT32
bufsize
,
UINT32
*
blobsize
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p, %d, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
buf
,
bufsize
,
blobsize
);
TRACE
(
"(%p)->(%s, %p, %d, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
buf
,
bufsize
,
blobsize
);
return
E_NOTIMPL
;
return
IMFAttributes_GetBlob
(
topology
->
attributes
,
key
,
buf
,
bufsize
,
blobsize
)
;
}
static
HRESULT
WINAPI
mf
topology_GetAllocatedBlob
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT8
**
buf
,
UINT32
*
size
)
static
HRESULT
WINAPI
topology_GetAllocatedBlob
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT8
**
buf
,
UINT32
*
size
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
buf
,
size
);
TRACE
(
"(%p)->(%s, %p, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
buf
,
size
);
return
E_NOTIMPL
;
return
IMFAttributes_GetAllocatedBlob
(
topology
->
attributes
,
key
,
buf
,
size
)
;
}
static
HRESULT
WINAPI
mf
topology_GetUnknown
(
IMFTopology
*
iface
,
REFGUID
key
,
REFIID
riid
,
void
**
ppv
)
static
HRESULT
WINAPI
topology_GetUnknown
(
IMFTopology
*
iface
,
REFGUID
key
,
REFIID
riid
,
void
**
ppv
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
debugstr_guid
(
riid
),
ppv
);
TRACE
(
"(%p)->(%s, %s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
debugstr_guid
(
riid
),
ppv
);
return
E_NOTIMPL
;
return
IMFAttributes_GetUnknown
(
topology
->
attributes
,
key
,
riid
,
ppv
)
;
}
static
HRESULT
WINAPI
mftopology_SetItem
(
IMFTopology
*
iface
,
REFGUID
key
,
REFPROPVARIANT
V
alue
)
static
HRESULT
WINAPI
topology_SetItem
(
IMFTopology
*
iface
,
REFGUID
key
,
REFPROPVARIANT
v
alue
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
V
alue
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
v
alue
);
return
E_NOTIMPL
;
return
IMFAttributes_SetItem
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_DeleteItem
(
IMFTopology
*
iface
,
REFGUID
key
)
static
HRESULT
WINAPI
topology_DeleteItem
(
IMFTopology
*
iface
,
REFGUID
key
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s)
\n
"
,
This
,
debugstr_guid
(
key
));
TRACE
(
"(%p)->(%s)
\n
"
,
topology
,
debugstr_guid
(
key
));
return
E_NOTIMPL
;
return
IMFAttributes_DeleteItem
(
topology
->
attributes
,
key
)
;
}
static
HRESULT
WINAPI
mf
topology_DeleteAllItems
(
IMFTopology
*
iface
)
static
HRESULT
WINAPI
topology_DeleteAllItems
(
IMFTopology
*
iface
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
TRACE
(
"(%p)
\n
"
,
iface
);
return
E_NOTIMPL
;
return
IMFAttributes_DeleteAllItems
(
topology
->
attributes
)
;
}
static
HRESULT
WINAPI
mf
topology_SetUINT32
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
value
)
static
HRESULT
WINAPI
topology_SetUINT32
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT32
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %d)
\n
"
,
This
,
debugstr_guid
(
key
),
value
);
TRACE
(
"(%p)->(%s, %d)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
);
return
E_NOTIMPL
;
return
IMFAttributes_SetUINT32
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_SetUINT64
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT64
value
)
static
HRESULT
WINAPI
topology_SetUINT64
(
IMFTopology
*
iface
,
REFGUID
key
,
UINT64
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %s)
\n
"
,
This
,
debugstr_guid
(
key
),
wine_dbgstr_longlong
(
value
));
TRACE
(
"(%p)->(%s, %s)
\n
"
,
iface
,
debugstr_guid
(
key
),
wine_dbgstr_longlong
(
value
));
return
E_NOTIMPL
;
return
IMFAttributes_SetUINT64
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_SetDouble
(
IMFTopology
*
iface
,
REFGUID
key
,
double
value
)
static
HRESULT
WINAPI
topology_SetDouble
(
IMFTopology
*
iface
,
REFGUID
key
,
double
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %f)
\n
"
,
This
,
debugstr_guid
(
key
),
value
);
TRACE
(
"(%p)->(%s, %f)
\n
"
,
iface
,
debugstr_guid
(
key
),
value
);
return
E_NOTIMPL
;
return
IMFAttributes_SetDouble
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_SetGUID
(
IMFTopology
*
iface
,
REFGUID
key
,
REFGUID
value
)
static
HRESULT
WINAPI
topology_SetGUID
(
IMFTopology
*
iface
,
REFGUID
key
,
REFGUID
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %s)
\n
"
,
This
,
debugstr_guid
(
key
),
debugstr_guid
(
value
));
TRACE
(
"(%p)->(%s, %s)
\n
"
,
iface
,
debugstr_guid
(
key
),
debugstr_guid
(
value
));
return
E_NOTIMPL
;
return
IMFAttributes_SetGUID
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_SetString
(
IMFTopology
*
iface
,
REFGUID
key
,
const
WCHAR
*
value
)
static
HRESULT
WINAPI
topology_SetString
(
IMFTopology
*
iface
,
REFGUID
key
,
const
WCHAR
*
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %s)
\n
"
,
This
,
debugstr_guid
(
key
),
debugstr_w
(
value
));
TRACE
(
"(%p)->(%s, %s)
\n
"
,
iface
,
debugstr_guid
(
key
),
debugstr_w
(
value
));
return
E_NOTIMPL
;
return
IMFAttributes_SetString
(
topology
->
attributes
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_SetBlob
(
IMFTopology
*
iface
,
REFGUID
key
,
const
UINT8
*
buf
,
UINT32
size
)
static
HRESULT
WINAPI
topology_SetBlob
(
IMFTopology
*
iface
,
REFGUID
key
,
const
UINT8
*
buf
,
UINT32
size
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p, %d)
\n
"
,
This
,
debugstr_guid
(
key
),
buf
,
size
);
TRACE
(
"(%p)->(%s, %p, %d)
\n
"
,
iface
,
debugstr_guid
(
key
),
buf
,
size
);
return
E_NOTIMPL
;
return
IMFAttributes_SetBlob
(
topology
->
attributes
,
key
,
buf
,
size
)
;
}
static
HRESULT
WINAPI
mf
topology_SetUnknown
(
IMFTopology
*
iface
,
REFGUID
key
,
IUnknown
*
unknown
)
static
HRESULT
WINAPI
topology_SetUnknown
(
IMFTopology
*
iface
,
REFGUID
key
,
IUnknown
*
unknown
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%s, %p)
\n
"
,
This
,
debugstr_guid
(
key
),
unknown
);
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
key
),
unknown
);
return
E_NOTIMPL
;
return
IMFAttributes_SetUnknown
(
topology
->
attributes
,
key
,
unknown
)
;
}
static
HRESULT
WINAPI
mf
topology_LockStore
(
IMFTopology
*
iface
)
static
HRESULT
WINAPI
topology_LockStore
(
IMFTopology
*
iface
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
TRACE
(
"(%p)
\n
"
,
iface
);
return
E_NOTIMPL
;
return
IMFAttributes_LockStore
(
topology
->
attributes
)
;
}
static
HRESULT
WINAPI
mf
topology_UnlockStore
(
IMFTopology
*
iface
)
static
HRESULT
WINAPI
topology_UnlockStore
(
IMFTopology
*
iface
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
TRACE
(
"(%p)
\n
"
,
iface
);
return
E_NOTIMPL
;
return
IMFAttributes_UnlockStore
(
topology
->
attributes
)
;
}
static
HRESULT
WINAPI
mf
topology_GetCount
(
IMFTopology
*
iface
,
UINT32
*
count
)
static
HRESULT
WINAPI
topology_GetCount
(
IMFTopology
*
iface
,
UINT32
*
count
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
count
);
TRACE
(
"(%p)->(%p)
\n
"
,
iface
,
count
);
return
E_NOTIMPL
;
return
IMFAttributes_GetCount
(
topology
->
attributes
,
count
)
;
}
static
HRESULT
WINAPI
mf
topology_GetItemByIndex
(
IMFTopology
*
iface
,
UINT32
index
,
GUID
*
key
,
PROPVARIANT
*
value
)
static
HRESULT
WINAPI
topology_GetItemByIndex
(
IMFTopology
*
iface
,
UINT32
index
,
GUID
*
key
,
PROPVARIANT
*
value
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%u, %p, %p)
\n
"
,
This
,
index
,
key
,
value
);
TRACE
(
"(%p)->(%u, %p, %p)
\n
"
,
iface
,
index
,
key
,
value
);
return
E_NOTIMPL
;
return
IMFAttributes_GetItemByIndex
(
topology
->
attributes
,
index
,
key
,
value
)
;
}
static
HRESULT
WINAPI
mf
topology_CopyAllItems
(
IMFTopology
*
iface
,
IMFAttributes
*
dest
)
static
HRESULT
WINAPI
topology_CopyAllItems
(
IMFTopology
*
iface
,
IMFAttributes
*
dest
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
struct
topology
*
topology
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
dest
);
TRACE
(
"(%p)->(%p)
\n
"
,
iface
,
dest
);
return
E_NOTIMPL
;
return
IMFAttributes_CopyAllItems
(
topology
->
attributes
,
dest
)
;
}
static
HRESULT
WINAPI
mf
topology_GetTopologyID
(
IMFTopology
*
iface
,
TOPOID
*
id
)
static
HRESULT
WINAPI
topology_GetTopologyID
(
IMFTopology
*
iface
,
TOPOID
*
id
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
id
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
id
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_AddNode
(
IMFTopology
*
iface
,
IMFTopologyNode
*
node
)
static
HRESULT
WINAPI
topology_AddNode
(
IMFTopology
*
iface
,
IMFTopologyNode
*
node
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
node
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
node
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_RemoveNode
(
IMFTopology
*
iface
,
IMFTopologyNode
*
node
)
static
HRESULT
WINAPI
topology_RemoveNode
(
IMFTopology
*
iface
,
IMFTopologyNode
*
node
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
node
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
node
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_GetNodeCount
(
IMFTopology
*
iface
,
WORD
*
count
)
static
HRESULT
WINAPI
topology_GetNodeCount
(
IMFTopology
*
iface
,
WORD
*
count
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
count
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
count
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_GetNode
(
IMFTopology
*
iface
,
WORD
index
,
IMFTopologyNode
**
node
)
static
HRESULT
WINAPI
topology_GetNode
(
IMFTopology
*
iface
,
WORD
index
,
IMFTopologyNode
**
node
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%u, %p)
\n
"
,
This
,
index
,
node
);
FIXME
(
"(%p)->(%u, %p)
\n
"
,
iface
,
index
,
node
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_Clear
(
IMFTopology
*
iface
)
static
HRESULT
WINAPI
topology_Clear
(
IMFTopology
*
iface
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)
\n
"
,
This
);
FIXME
(
"(%p)
\n
"
,
iface
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mftopology_CloneFrom
(
IMFTopology
*
iface
,
IMFTopology
*
topology
)
static
HRESULT
WINAPI
topology_CloneFrom
(
IMFTopology
*
iface
,
IMFTopology
*
src_
topology
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
topology
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
src_topology
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_GetNodeByID
(
IMFTopology
*
iface
,
TOPOID
id
,
IMFTopologyNode
**
node
)
static
HRESULT
WINAPI
topology_GetNodeByID
(
IMFTopology
*
iface
,
TOPOID
id
,
IMFTopologyNode
**
node
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
node
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
node
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_GetSourceNodeCollection
(
IMFTopology
*
iface
,
IMFCollection
**
collection
)
static
HRESULT
WINAPI
topology_GetSourceNodeCollection
(
IMFTopology
*
iface
,
IMFCollection
**
collection
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
collection
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
collection
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
mf
topology_GetOutputNodeCollection
(
IMFTopology
*
iface
,
IMFCollection
**
collection
)
static
HRESULT
WINAPI
topology_GetOutputNodeCollection
(
IMFTopology
*
iface
,
IMFCollection
**
collection
)
{
mftopology
*
This
=
impl_from_IMFTopology
(
iface
);
FIXME
(
"(%p)->(%p)
\n
"
,
This
,
collection
);
FIXME
(
"(%p)->(%p)
\n
"
,
iface
,
collection
);
return
E_NOTIMPL
;
}
static
const
IMFTopologyVtbl
mf
topologyvtbl
=
{
mf
topology_QueryInterface
,
mf
topology_AddRef
,
mf
topology_Release
,
mf
topology_GetItem
,
mf
topology_GetItemType
,
mf
topology_CompareItem
,
mf
topology_Compare
,
mf
topology_GetUINT32
,
mf
topology_GetUINT64
,
mf
topology_GetDouble
,
mf
topology_GetGUID
,
mf
topology_GetStringLength
,
mf
topology_GetString
,
mf
topology_GetAllocatedString
,
mf
topology_GetBlobSize
,
mf
topology_GetBlob
,
mf
topology_GetAllocatedBlob
,
mf
topology_GetUnknown
,
mf
topology_SetItem
,
mf
topology_DeleteItem
,
mf
topology_DeleteAllItems
,
mf
topology_SetUINT32
,
mf
topology_SetUINT64
,
mf
topology_SetDouble
,
mf
topology_SetGUID
,
mf
topology_SetString
,
mf
topology_SetBlob
,
mf
topology_SetUnknown
,
mf
topology_LockStore
,
mf
topology_UnlockStore
,
mf
topology_GetCount
,
mf
topology_GetItemByIndex
,
mf
topology_CopyAllItems
,
mf
topology_GetTopologyID
,
mf
topology_AddNode
,
mf
topology_RemoveNode
,
mf
topology_GetNodeCount
,
mf
topology_GetNode
,
mf
topology_Clear
,
mf
topology_CloneFrom
,
mf
topology_GetNodeByID
,
mf
topology_GetSourceNodeCollection
,
mf
topology_GetOutputNodeCollection
,
static
const
IMFTopologyVtbl
topologyvtbl
=
{
topology_QueryInterface
,
topology_AddRef
,
topology_Release
,
topology_GetItem
,
topology_GetItemType
,
topology_CompareItem
,
topology_Compare
,
topology_GetUINT32
,
topology_GetUINT64
,
topology_GetDouble
,
topology_GetGUID
,
topology_GetStringLength
,
topology_GetString
,
topology_GetAllocatedString
,
topology_GetBlobSize
,
topology_GetBlob
,
topology_GetAllocatedBlob
,
topology_GetUnknown
,
topology_SetItem
,
topology_DeleteItem
,
topology_DeleteAllItems
,
topology_SetUINT32
,
topology_SetUINT64
,
topology_SetDouble
,
topology_SetGUID
,
topology_SetString
,
topology_SetBlob
,
topology_SetUnknown
,
topology_LockStore
,
topology_UnlockStore
,
topology_GetCount
,
topology_GetItemByIndex
,
topology_CopyAllItems
,
topology_GetTopologyID
,
topology_AddNode
,
topology_RemoveNode
,
topology_GetNodeCount
,
topology_GetNode
,
topology_Clear
,
topology_CloneFrom
,
topology_GetNodeByID
,
topology_GetSourceNodeCollection
,
topology_GetOutputNodeCollection
,
};
/***********************************************************************
...
...
@@ -505,19 +489,26 @@ static const IMFTopologyVtbl mftopologyvtbl =
*/
HRESULT
WINAPI
MFCreateTopology
(
IMFTopology
**
topology
)
{
mftopology
*
object
;
struct
topology
*
object
;
HRESULT
hr
;
TRACE
(
"(%p)
\n
"
,
topology
);
if
(
!
topology
)
return
E_POINTER
;
object
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
object
));
object
=
heap_alloc_zero
(
sizeof
(
*
object
));
if
(
!
object
)
return
E_OUTOFMEMORY
;
object
->
IMFTopology_iface
.
lpVtbl
=
&
mftopologyvtbl
;
object
->
ref
=
1
;
object
->
IMFTopology_iface
.
lpVtbl
=
&
topologyvtbl
;
object
->
refcount
=
1
;
hr
=
MFCreateAttributes
(
&
object
->
attributes
,
0
);
if
(
FAILED
(
hr
))
{
heap_free
(
object
);
return
hr
;
}
*
topology
=
&
object
->
IMFTopology_iface
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment