Hi Jefferson,
+typedef struct {
- IWMReaderCallback IWMReaderCallback_iface;
- LONG ref;
- HRESULT (*onStatusCallback)(WMT_STATUS, HRESULT, WMT_ATTR_DATATYPE, BYTE*, void*, void*);
- HRESULT (*onSampleCallback)(DWORD, QWORD, QWORD, DWORD, INSSBuffer*, void*, void*);
- void *pvCallbackContext;
+} TestWMReaderCallback;
I'm still a little confused as to why you need this structure when the IWMReaderCallbackVtbl with a few globals would work just as well.
+static HRESULT onStatus_test_wmreader_play_wma(
- WMT_STATUS status,
- HRESULT hr,
- WMT_ATTR_DATATYPE dwType,
- BYTE *pValue,
- void *pvContext,
- void *pvCallbackContext)
+{
- struct callback_context_test_wmreader_play_wma *pTestContext =
(struct callback_context_test_wmreader_play_wma*)pvCallbackContext;
- DWORD *dwordValue;
- CHECK_EXPECT(onStatus);
- ok(status == onStatus_expected_statuses_test_wmreader_play_wma[pTestContext->onStatus_call_count],
"onStatus called with unexpected status: %d\n", status);
- if (status == WMT_OPENED) {
ok(pvContext == pTestContext->pvContextOpen,
"onStatus was not passed pvContext: expected %p, actual %p\n", pTestContext->pvContextOpen, pvContext);
- }
- else /* status == WMT_STARTED, or later */ {
ok(pvContext == pTestContext->pvContextStart,
"onStatus was not passed pvContext: expected %p, actual %p\n", pTestContext->pvContextStart, pvContext);
- }
- switch (status) {
- case WMT_STARTED:
// MSDN says dwType is a QWORD, but it is actually a DWORD
ok(dwType == WMT_TYPE_DWORD, "onStatus pValue not WMT_TYPE_QWORD (%d), but %d\n", (int)WMT_TYPE_DWORD, dwType);
WMT_TYPE_QWORD typo?
dwordValue = (DWORD*)pValue;
ok(*dwordValue == 0, "onStatus call for WMT_STARTED not passed correct starting timestamp: %u\n", *dwordValue);
SET_EXPECT(onSample);
break;
- default:
break;
- }
The switch and if could be merged
- /* Get format count. */
- formatCount = 0;
- hr = IWMReader_GetOutputFormatCount(reader, 0, &formatCount);
- todo_wine ok(hr == S_OK, "Failed to get output format count: 0x%08x\n", hr);
formatCount should be checked
Best Regards Alistair Leslie-Hughes