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
671400c4
Commit
671400c4
authored
Dec 21, 2010
by
Michael Stefaniuc
Committed by
Alexandre Julliard
Dec 21, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
qcap: Use ifaces instead of vtbl pointers in VfwCapture.
parent
303f84c4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
25 deletions
+40
-25
vfwcapture.c
dlls/qcap/vfwcapture.c
+40
-25
No files found.
dlls/qcap/vfwcapture.c
View file @
671400c4
...
@@ -60,9 +60,9 @@ static HRESULT VfwPin_Construct( IBaseFilter *, LPCRITICAL_SECTION, IPin ** );
...
@@ -60,9 +60,9 @@ static HRESULT VfwPin_Construct( IBaseFilter *, LPCRITICAL_SECTION, IPin ** );
typedef
struct
VfwCapture
typedef
struct
VfwCapture
{
{
BaseFilter
filter
;
BaseFilter
filter
;
const
IAMStreamConfigVtbl
*
IAMStreamConfig_vtbl
;
IAMStreamConfig
IAMStreamConfig_iface
;
const
IAMVideoProcAmpVtbl
*
IAMVideoProcAmp_vtbl
;
IAMVideoProcAmp
IAMVideoProcAmp_iface
;
const
IPersistPropertyBagVtbl
*
IPersistPropertyBag_vtbl
;
IPersistPropertyBag
IPersistPropertyBag_iface
;
BOOL
init
;
BOOL
init
;
Capture
*
driver_info
;
Capture
*
driver_info
;
...
@@ -70,6 +70,21 @@ typedef struct VfwCapture
...
@@ -70,6 +70,21 @@ typedef struct VfwCapture
IPin
*
pOutputPin
;
IPin
*
pOutputPin
;
}
VfwCapture
;
}
VfwCapture
;
static
inline
VfwCapture
*
impl_from_IAMStreamConfig
(
IAMStreamConfig
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
VfwCapture
,
IAMStreamConfig_iface
);
}
static
inline
VfwCapture
*
impl_from_IAMVideoProcAmp
(
IAMVideoProcAmp
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
VfwCapture
,
IAMVideoProcAmp_iface
);
}
static
inline
VfwCapture
*
impl_from_IPersistPropertyBag
(
IPersistPropertyBag
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
VfwCapture
,
IPersistPropertyBag_iface
);
}
/* VfwPin implementation */
/* VfwPin implementation */
typedef
struct
VfwPinImpl
typedef
struct
VfwPinImpl
{
{
...
@@ -119,9 +134,9 @@ IUnknown * WINAPI QCAP_createVFWCaptureFilter(IUnknown *pUnkOuter, HRESULT *phr)
...
@@ -119,9 +134,9 @@ IUnknown * WINAPI QCAP_createVFWCaptureFilter(IUnknown *pUnkOuter, HRESULT *phr)
BaseFilter_Init
(
&
pVfwCapture
->
filter
,
&
VfwCapture_Vtbl
,
&
CLSID_VfwCapture
,
(
DWORD_PTR
)(
__FILE__
": VfwCapture.csFilter"
),
&
BaseFuncTable
);
BaseFilter_Init
(
&
pVfwCapture
->
filter
,
&
VfwCapture_Vtbl
,
&
CLSID_VfwCapture
,
(
DWORD_PTR
)(
__FILE__
": VfwCapture.csFilter"
),
&
BaseFuncTable
);
pVfwCapture
->
IAMStreamConfig_
v
tbl
=
&
IAMStreamConfig_VTable
;
pVfwCapture
->
IAMStreamConfig_
iface
.
lpV
tbl
=
&
IAMStreamConfig_VTable
;
pVfwCapture
->
IAMVideoProcAmp_
v
tbl
=
&
IAMVideoProcAmp_VTable
;
pVfwCapture
->
IAMVideoProcAmp_
iface
.
lpV
tbl
=
&
IAMVideoProcAmp_VTable
;
pVfwCapture
->
IPersistPropertyBag_
v
tbl
=
&
IPersistPropertyBag_VTable
;
pVfwCapture
->
IPersistPropertyBag_
iface
.
lpV
tbl
=
&
IPersistPropertyBag_VTable
;
pVfwCapture
->
init
=
FALSE
;
pVfwCapture
->
init
=
FALSE
;
hr
=
VfwPin_Construct
((
IBaseFilter
*
)
&
pVfwCapture
->
filter
.
lpVtbl
,
hr
=
VfwPin_Construct
((
IBaseFilter
*
)
&
pVfwCapture
->
filter
.
lpVtbl
,
...
@@ -152,11 +167,11 @@ static HRESULT WINAPI VfwCapture_QueryInterface(IBaseFilter * iface, REFIID riid
...
@@ -152,11 +167,11 @@ static HRESULT WINAPI VfwCapture_QueryInterface(IBaseFilter * iface, REFIID riid
*
ppv
=
This
;
*
ppv
=
This
;
}
}
else
if
(
IsEqualIID
(
riid
,
&
IID_IAMStreamConfig
))
else
if
(
IsEqualIID
(
riid
,
&
IID_IAMStreamConfig
))
*
ppv
=
&
(
This
->
IAMStreamConfig_vtbl
)
;
*
ppv
=
&
This
->
IAMStreamConfig_iface
;
else
if
(
IsEqualIID
(
riid
,
&
IID_IAMVideoProcAmp
))
else
if
(
IsEqualIID
(
riid
,
&
IID_IAMVideoProcAmp
))
*
ppv
=
&
(
This
->
IAMVideoProcAmp_vtbl
)
;
*
ppv
=
&
This
->
IAMVideoProcAmp_iface
;
else
if
(
IsEqualIID
(
riid
,
&
IID_IPersistPropertyBag
))
else
if
(
IsEqualIID
(
riid
,
&
IID_IPersistPropertyBag
))
*
ppv
=
&
(
This
->
IPersistPropertyBag_vtbl
)
;
*
ppv
=
&
This
->
IPersistPropertyBag_iface
;
if
(
!
IsEqualIID
(
riid
,
&
IID_IUnknown
)
&&
if
(
!
IsEqualIID
(
riid
,
&
IID_IUnknown
)
&&
!
IsEqualIID
(
riid
,
&
IID_IPersist
)
&&
!
IsEqualIID
(
riid
,
&
IID_IPersist
)
&&
...
@@ -271,7 +286,7 @@ static const IBaseFilterVtbl VfwCapture_Vtbl =
...
@@ -271,7 +286,7 @@ static const IBaseFilterVtbl VfwCapture_Vtbl =
static
HRESULT
WINAPI
static
HRESULT
WINAPI
AMStreamConfig_QueryInterface
(
IAMStreamConfig
*
iface
,
REFIID
riid
,
LPVOID
*
ppv
)
AMStreamConfig_QueryInterface
(
IAMStreamConfig
*
iface
,
REFIID
riid
,
LPVOID
*
ppv
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMStreamConfig_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMStreamConfig
(
iface
);
TRACE
(
"%p --> %s
\n
"
,
This
,
debugstr_guid
(
riid
));
TRACE
(
"%p --> %s
\n
"
,
This
,
debugstr_guid
(
riid
));
...
@@ -289,7 +304,7 @@ AMStreamConfig_QueryInterface( IAMStreamConfig * iface, REFIID riid, LPVOID * pp
...
@@ -289,7 +304,7 @@ AMStreamConfig_QueryInterface( IAMStreamConfig * iface, REFIID riid, LPVOID * pp
static
ULONG
WINAPI
AMStreamConfig_AddRef
(
IAMStreamConfig
*
iface
)
static
ULONG
WINAPI
AMStreamConfig_AddRef
(
IAMStreamConfig
*
iface
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMStreamConfig_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMStreamConfig
(
iface
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
return
IUnknown_AddRef
((
IUnknown
*
)
This
);
return
IUnknown_AddRef
((
IUnknown
*
)
This
);
...
@@ -297,7 +312,7 @@ static ULONG WINAPI AMStreamConfig_AddRef( IAMStreamConfig * iface )
...
@@ -297,7 +312,7 @@ static ULONG WINAPI AMStreamConfig_AddRef( IAMStreamConfig * iface )
static
ULONG
WINAPI
AMStreamConfig_Release
(
IAMStreamConfig
*
iface
)
static
ULONG
WINAPI
AMStreamConfig_Release
(
IAMStreamConfig
*
iface
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMStreamConfig_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMStreamConfig
(
iface
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
return
IUnknown_Release
((
IUnknown
*
)
This
);
return
IUnknown_Release
((
IUnknown
*
)
This
);
...
@@ -307,7 +322,7 @@ static HRESULT WINAPI
...
@@ -307,7 +322,7 @@ static HRESULT WINAPI
AMStreamConfig_SetFormat
(
IAMStreamConfig
*
iface
,
AM_MEDIA_TYPE
*
pmt
)
AMStreamConfig_SetFormat
(
IAMStreamConfig
*
iface
,
AM_MEDIA_TYPE
*
pmt
)
{
{
HRESULT
hr
;
HRESULT
hr
;
ICOM_THIS_MULTI
(
VfwCapture
,
IAMStreamConfig_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMStreamConfig
(
iface
);
BasePin
*
pin
;
BasePin
*
pin
;
TRACE
(
"(%p): %p->%p
\n
"
,
iface
,
pmt
,
pmt
?
pmt
->
pbFormat
:
NULL
);
TRACE
(
"(%p): %p->%p
\n
"
,
iface
,
pmt
,
pmt
?
pmt
->
pbFormat
:
NULL
);
...
@@ -349,7 +364,7 @@ AMStreamConfig_SetFormat(IAMStreamConfig *iface, AM_MEDIA_TYPE *pmt)
...
@@ -349,7 +364,7 @@ AMStreamConfig_SetFormat(IAMStreamConfig *iface, AM_MEDIA_TYPE *pmt)
static
HRESULT
WINAPI
static
HRESULT
WINAPI
AMStreamConfig_GetFormat
(
IAMStreamConfig
*
iface
,
AM_MEDIA_TYPE
**
pmt
)
AMStreamConfig_GetFormat
(
IAMStreamConfig
*
iface
,
AM_MEDIA_TYPE
**
pmt
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMStreamConfig_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMStreamConfig
(
iface
);
TRACE
(
"%p -> (%p)
\n
"
,
iface
,
pmt
);
TRACE
(
"%p -> (%p)
\n
"
,
iface
,
pmt
);
return
qcap_driver_get_format
(
This
->
driver_info
,
pmt
);
return
qcap_driver_get_format
(
This
->
driver_info
,
pmt
);
...
@@ -400,14 +415,14 @@ AMVideoProcAmp_QueryInterface( IAMVideoProcAmp * iface, REFIID riid,
...
@@ -400,14 +415,14 @@ AMVideoProcAmp_QueryInterface( IAMVideoProcAmp * iface, REFIID riid,
static
ULONG
WINAPI
AMVideoProcAmp_AddRef
(
IAMVideoProcAmp
*
iface
)
static
ULONG
WINAPI
AMVideoProcAmp_AddRef
(
IAMVideoProcAmp
*
iface
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMVideoProcAmp_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMVideoProcAmp
(
iface
);
return
IUnknown_AddRef
((
IUnknown
*
)
This
);
return
IUnknown_AddRef
((
IUnknown
*
)
This
);
}
}
static
ULONG
WINAPI
AMVideoProcAmp_Release
(
IAMVideoProcAmp
*
iface
)
static
ULONG
WINAPI
AMVideoProcAmp_Release
(
IAMVideoProcAmp
*
iface
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMVideoProcAmp_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMVideoProcAmp
(
iface
);
return
IUnknown_Release
((
IUnknown
*
)
This
);
return
IUnknown_Release
((
IUnknown
*
)
This
);
}
}
...
@@ -416,7 +431,7 @@ static HRESULT WINAPI
...
@@ -416,7 +431,7 @@ static HRESULT WINAPI
AMVideoProcAmp_GetRange
(
IAMVideoProcAmp
*
iface
,
LONG
Property
,
LONG
*
pMin
,
AMVideoProcAmp_GetRange
(
IAMVideoProcAmp
*
iface
,
LONG
Property
,
LONG
*
pMin
,
LONG
*
pMax
,
LONG
*
pSteppingDelta
,
LONG
*
pDefault
,
LONG
*
pCapsFlags
)
LONG
*
pMax
,
LONG
*
pSteppingDelta
,
LONG
*
pDefault
,
LONG
*
pCapsFlags
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMVideoProcAmp_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMVideoProcAmp
(
iface
);
return
qcap_driver_get_prop_range
(
This
->
driver_info
,
Property
,
pMin
,
pMax
,
return
qcap_driver_get_prop_range
(
This
->
driver_info
,
Property
,
pMin
,
pMax
,
pSteppingDelta
,
pDefault
,
pCapsFlags
);
pSteppingDelta
,
pDefault
,
pCapsFlags
);
...
@@ -426,7 +441,7 @@ static HRESULT WINAPI
...
@@ -426,7 +441,7 @@ static HRESULT WINAPI
AMVideoProcAmp_Set
(
IAMVideoProcAmp
*
iface
,
LONG
Property
,
LONG
lValue
,
AMVideoProcAmp_Set
(
IAMVideoProcAmp
*
iface
,
LONG
Property
,
LONG
lValue
,
LONG
Flags
)
LONG
Flags
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMVideoProcAmp_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMVideoProcAmp
(
iface
);
return
qcap_driver_set_prop
(
This
->
driver_info
,
Property
,
lValue
,
Flags
);
return
qcap_driver_set_prop
(
This
->
driver_info
,
Property
,
lValue
,
Flags
);
}
}
...
@@ -435,7 +450,7 @@ static HRESULT WINAPI
...
@@ -435,7 +450,7 @@ static HRESULT WINAPI
AMVideoProcAmp_Get
(
IAMVideoProcAmp
*
iface
,
LONG
Property
,
LONG
*
lValue
,
AMVideoProcAmp_Get
(
IAMVideoProcAmp
*
iface
,
LONG
Property
,
LONG
*
lValue
,
LONG
*
Flags
)
LONG
*
Flags
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IAMVideoProcAmp_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IAMVideoProcAmp
(
iface
);
return
qcap_driver_get_prop
(
This
->
driver_info
,
Property
,
lValue
,
Flags
);
return
qcap_driver_get_prop
(
This
->
driver_info
,
Property
,
lValue
,
Flags
);
}
}
...
@@ -475,7 +490,7 @@ PPB_QueryInterface( IPersistPropertyBag * iface, REFIID riid, LPVOID * ppv )
...
@@ -475,7 +490,7 @@ PPB_QueryInterface( IPersistPropertyBag * iface, REFIID riid, LPVOID * ppv )
static
ULONG
WINAPI
PPB_AddRef
(
IPersistPropertyBag
*
iface
)
static
ULONG
WINAPI
PPB_AddRef
(
IPersistPropertyBag
*
iface
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IPersistPropertyBag_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IPersistPropertyBag
(
iface
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
...
@@ -484,7 +499,7 @@ static ULONG WINAPI PPB_AddRef(IPersistPropertyBag * iface)
...
@@ -484,7 +499,7 @@ static ULONG WINAPI PPB_AddRef(IPersistPropertyBag * iface)
static
ULONG
WINAPI
PPB_Release
(
IPersistPropertyBag
*
iface
)
static
ULONG
WINAPI
PPB_Release
(
IPersistPropertyBag
*
iface
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IPersistPropertyBag_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IPersistPropertyBag
(
iface
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
TRACE
(
"%p --> Forwarding to VfwCapture (%p)
\n
"
,
iface
,
This
);
...
@@ -494,7 +509,7 @@ static ULONG WINAPI PPB_Release(IPersistPropertyBag * iface)
...
@@ -494,7 +509,7 @@ static ULONG WINAPI PPB_Release(IPersistPropertyBag * iface)
static
HRESULT
WINAPI
static
HRESULT
WINAPI
PPB_GetClassID
(
IPersistPropertyBag
*
iface
,
CLSID
*
pClassID
)
PPB_GetClassID
(
IPersistPropertyBag
*
iface
,
CLSID
*
pClassID
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IPersistPropertyBag_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IPersistPropertyBag
(
iface
);
FIXME
(
"%p - stub
\n
"
,
This
);
FIXME
(
"%p - stub
\n
"
,
This
);
...
@@ -503,7 +518,7 @@ PPB_GetClassID( IPersistPropertyBag * iface, CLSID * pClassID )
...
@@ -503,7 +518,7 @@ PPB_GetClassID( IPersistPropertyBag * iface, CLSID * pClassID )
static
HRESULT
WINAPI
PPB_InitNew
(
IPersistPropertyBag
*
iface
)
static
HRESULT
WINAPI
PPB_InitNew
(
IPersistPropertyBag
*
iface
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IPersistPropertyBag_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IPersistPropertyBag
(
iface
);
FIXME
(
"%p - stub
\n
"
,
This
);
FIXME
(
"%p - stub
\n
"
,
This
);
...
@@ -514,7 +529,7 @@ static HRESULT WINAPI
...
@@ -514,7 +529,7 @@ static HRESULT WINAPI
PPB_Load
(
IPersistPropertyBag
*
iface
,
IPropertyBag
*
pPropBag
,
PPB_Load
(
IPersistPropertyBag
*
iface
,
IPropertyBag
*
pPropBag
,
IErrorLog
*
pErrorLog
)
IErrorLog
*
pErrorLog
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IPersistPropertyBag_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IPersistPropertyBag
(
iface
);
HRESULT
hr
;
HRESULT
hr
;
VARIANT
var
;
VARIANT
var
;
const
OLECHAR
VFWIndex
[]
=
{
'V'
,
'F'
,
'W'
,
'I'
,
'n'
,
'd'
,
'e'
,
'x'
,
0
};
const
OLECHAR
VFWIndex
[]
=
{
'V'
,
'F'
,
'W'
,
'I'
,
'n'
,
'd'
,
'e'
,
'x'
,
0
};
...
@@ -549,7 +564,7 @@ static HRESULT WINAPI
...
@@ -549,7 +564,7 @@ static HRESULT WINAPI
PPB_Save
(
IPersistPropertyBag
*
iface
,
IPropertyBag
*
pPropBag
,
PPB_Save
(
IPersistPropertyBag
*
iface
,
IPropertyBag
*
pPropBag
,
BOOL
fClearDirty
,
BOOL
fSaveAllProperties
)
BOOL
fClearDirty
,
BOOL
fSaveAllProperties
)
{
{
ICOM_THIS_MULTI
(
VfwCapture
,
IPersistPropertyBag_vtbl
,
iface
);
VfwCapture
*
This
=
impl_from_IPersistPropertyBag
(
iface
);
FIXME
(
"%p - stub
\n
"
,
This
);
FIXME
(
"%p - stub
\n
"
,
This
);
return
E_NOTIMPL
;
return
E_NOTIMPL
;
}
}
...
...
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