2 * Copyright 2017 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #define WIN32_LEAN_AND_MEAN
23 #include "wine/test.h"
25 HRESULT WINAPI
WMCreateWriterPriv(IWMWriter
**writer
);
27 static void test_wmwriter_interfaces(void)
31 IWMHeaderInfo
*header
;
32 IWMHeaderInfo2
*header2
;
33 IWMHeaderInfo3
*header3
;
35 hr
= WMCreateWriter( NULL
, &writer
);
36 ok(hr
== S_OK
, "WMCreateWriter failed 0x%08x\n", hr
);
39 win_skip("Failed to create IWMWriter\n");
43 hr
= IWMWriter_QueryInterface(writer
, &IID_IWMHeaderInfo
, (void **)&header
);
44 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
46 hr
= IWMWriter_QueryInterface(writer
, &IID_IWMHeaderInfo2
, (void **)&header2
);
47 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
49 hr
= IWMWriter_QueryInterface(writer
, &IID_IWMHeaderInfo3
, (void **)&header3
);
50 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
53 IWMHeaderInfo_Release(header
);
55 IWMHeaderInfo2_Release(header2
);
57 IWMHeaderInfo3_Release(header3
);
58 IWMWriter_Release(writer
);
61 static void test_wmreader_interfaces(void)
65 IWMReaderAdvanced
*advanced
;
66 IWMReaderAdvanced2
*advanced2
;
67 IWMHeaderInfo
*header
;
68 IWMHeaderInfo2
*header2
;
69 IWMHeaderInfo3
*header3
;
71 IWMProfile2
*profile2
;
72 IWMProfile3
*profile3
;
73 IWMPacketSize
*packet
;
74 IWMPacketSize2
*packet2
;
75 IWMReaderAccelerator
*accel
;
76 IWMReaderTimecode
*timecode
;
77 IWMReaderNetworkConfig
*netconfig
;
78 IWMReaderNetworkConfig2
*netconfig2
;
79 IWMReaderStreamClock
*clock
;
80 IWMReaderTypeNegotiation
*negotiation
;
81 IWMDRMReader
*drmreader
;
82 IWMDRMReader2
*drmreader2
;
83 IWMDRMReader3
*drmreader3
;
85 hr
= WMCreateReader( NULL
, 0, &reader
);
86 ok(hr
== S_OK
, "WMCreateReader failed 0x%08x\n", hr
);
89 win_skip("Failed to create IWMReader\n");
93 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderAdvanced
, (void **)&advanced
);
94 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
96 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderAdvanced2
, (void **)&advanced2
);
97 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
99 hr
= IWMReader_QueryInterface(reader
, &IID_IWMHeaderInfo
, (void **)&header
);
100 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
102 hr
= IWMReader_QueryInterface(reader
, &IID_IWMHeaderInfo2
, (void **)&header2
);
103 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
105 hr
= IWMReader_QueryInterface(reader
, &IID_IWMHeaderInfo3
, (void **)&header3
);
106 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
108 hr
= IWMReader_QueryInterface(reader
, &IID_IWMProfile
, (void **)&profile
);
109 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
111 hr
= IWMReader_QueryInterface(reader
, &IID_IWMProfile2
, (void **)&profile2
);
112 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
114 hr
= IWMReader_QueryInterface(reader
, &IID_IWMProfile3
, (void **)&profile3
);
115 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
117 hr
= IWMReader_QueryInterface(reader
, &IID_IWMPacketSize
, (void **)&packet
);
118 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
120 hr
= IWMReader_QueryInterface(reader
, &IID_IWMPacketSize2
, (void **)&packet2
);
121 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
123 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderAccelerator
, (void **)&accel
);
124 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
126 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderTimecode
, (void **)&timecode
);
127 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
129 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderNetworkConfig
, (void **)&netconfig
);
130 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
132 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderNetworkConfig2
, (void **)&netconfig2
);
133 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
135 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderStreamClock
, (void **)&clock
);
136 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
138 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderTypeNegotiation
, (void **)&negotiation
);
139 todo_wine
ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
141 hr
= IWMReader_QueryInterface(reader
, &IID_IWMDRMReader
, (void **)&drmreader
);
142 ok(hr
== E_NOINTERFACE
, "Failed 0x%08x\n", hr
);
144 hr
= IWMReader_QueryInterface(reader
, &IID_IWMDRMReader2
, (void **)&drmreader2
);
145 ok(hr
== E_NOINTERFACE
, "Failed 0x%08x\n", hr
);
147 hr
= IWMReader_QueryInterface(reader
, &IID_IWMDRMReader3
, (void **)&drmreader3
);
148 ok(hr
== E_NOINTERFACE
, "Failed 0x%08x\n", hr
);
151 IWMPacketSize_Release(packet
);
153 IWMPacketSize2_Release(packet2
);
155 IWMReaderAdvanced_Release(advanced
);
157 IWMReaderAdvanced2_Release(advanced2
);
159 IWMProfile_Release(profile
);
161 IWMProfile2_Release(profile2
);
163 IWMProfile3_Release(profile3
);
165 IWMHeaderInfo_Release(header
);
167 IWMHeaderInfo2_Release(header2
);
169 IWMHeaderInfo3_Release(header3
);
171 IWMReaderAccelerator_Release(accel
);
173 IWMReaderTimecode_Release(timecode
);
175 IWMReaderNetworkConfig_Release(netconfig
);
177 IWMReaderNetworkConfig2_Release(netconfig2
);
179 IWMReaderStreamClock_Release(clock
);
181 IWMReaderTypeNegotiation_Release(negotiation
);
183 IWMReader_Release(reader
);
186 static void test_profile_manager_interfaces(void)
189 IWMProfileManager
*profile
;
191 hr
= WMCreateProfileManager(&profile
);
192 ok(hr
== S_OK
, "WMCreateProfileManager failed 0x%08x\n", hr
);
195 win_skip("Failed to create IWMProfileManager\n");
199 IWMProfileManager_Release(profile
);
202 static void test_WMCreateWriterPriv(void)
204 IWMWriter
*writer
, *writer2
;
207 hr
= WMCreateWriterPriv(&writer
);
208 ok(hr
== S_OK
, "got 0x%08x\n", hr
);
210 hr
= IWMWriter_QueryInterface(writer
, &IID_IWMWriter
, (void**)&writer2
);
211 ok(hr
== S_OK
, "got 0x%08x\n", hr
);
213 IWMWriter_Release(writer
);
214 IWMWriter_Release(writer2
);
221 hr
= CoInitialize(0);
222 ok(hr
== S_OK
, "failed to init com\n");
226 test_wmreader_interfaces();
227 test_wmwriter_interfaces();
228 test_profile_manager_interfaces();
229 test_WMCreateWriterPriv();