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
;
84 IWMReaderPlaylistBurn
*playlist
;
85 IWMLanguageList
*langlist
;
86 IReferenceClock
*refclock
;
88 hr
= WMCreateReader( NULL
, 0, &reader
);
89 ok(hr
== S_OK
, "WMCreateReader failed 0x%08x\n", hr
);
92 win_skip("Failed to create IWMReader\n");
96 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderAdvanced
, (void **)&advanced
);
97 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
99 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderAdvanced2
, (void **)&advanced2
);
100 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
102 hr
= IWMReader_QueryInterface(reader
, &IID_IWMHeaderInfo
, (void **)&header
);
103 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
105 hr
= IWMReader_QueryInterface(reader
, &IID_IWMHeaderInfo2
, (void **)&header2
);
106 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
108 hr
= IWMReader_QueryInterface(reader
, &IID_IWMHeaderInfo3
, (void **)&header3
);
109 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
111 hr
= IWMReader_QueryInterface(reader
, &IID_IWMProfile
, (void **)&profile
);
112 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
114 hr
= IWMReader_QueryInterface(reader
, &IID_IWMProfile2
, (void **)&profile2
);
115 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
117 hr
= IWMReader_QueryInterface(reader
, &IID_IWMProfile3
, (void **)&profile3
);
118 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
120 hr
= IWMReader_QueryInterface(reader
, &IID_IWMPacketSize
, (void **)&packet
);
121 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
123 hr
= IWMReader_QueryInterface(reader
, &IID_IWMPacketSize2
, (void **)&packet2
);
124 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
126 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderAccelerator
, (void **)&accel
);
127 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
129 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderTimecode
, (void **)&timecode
);
130 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
132 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderNetworkConfig
, (void **)&netconfig
);
133 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
135 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderNetworkConfig2
, (void **)&netconfig2
);
136 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
138 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderStreamClock
, (void **)&clock
);
139 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
141 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderTypeNegotiation
, (void **)&negotiation
);
142 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
144 hr
= IWMReader_QueryInterface(reader
, &IID_IWMDRMReader
, (void **)&drmreader
);
145 ok(hr
== E_NOINTERFACE
, "Failed 0x%08x\n", hr
);
147 hr
= IWMReader_QueryInterface(reader
, &IID_IWMDRMReader2
, (void **)&drmreader2
);
148 ok(hr
== E_NOINTERFACE
, "Failed 0x%08x\n", hr
);
150 hr
= IWMReader_QueryInterface(reader
, &IID_IWMDRMReader3
, (void **)&drmreader3
);
151 ok(hr
== E_NOINTERFACE
, "Failed 0x%08x\n", hr
);
153 hr
= IWMReader_QueryInterface(reader
, &IID_IWMReaderPlaylistBurn
, (void **)&playlist
);
154 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
156 hr
= IWMReader_QueryInterface(reader
, &IID_IWMLanguageList
, (void **)&langlist
);
157 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
159 hr
= IWMReader_QueryInterface(reader
, &IID_IReferenceClock
, (void **)&refclock
);
160 ok(hr
== S_OK
, "Failed 0x%08x\n", hr
);
163 IWMPacketSize_Release(packet
);
165 IWMPacketSize2_Release(packet2
);
167 IWMReaderAdvanced_Release(advanced
);
169 IWMReaderAdvanced2_Release(advanced2
);
171 IWMProfile_Release(profile
);
173 IWMProfile2_Release(profile2
);
175 IWMProfile3_Release(profile3
);
177 IWMHeaderInfo_Release(header
);
179 IWMHeaderInfo2_Release(header2
);
181 IWMHeaderInfo3_Release(header3
);
183 IWMReaderAccelerator_Release(accel
);
185 IWMReaderTimecode_Release(timecode
);
187 IWMReaderNetworkConfig_Release(netconfig
);
189 IWMReaderNetworkConfig2_Release(netconfig2
);
191 IWMReaderStreamClock_Release(clock
);
193 IWMReaderTypeNegotiation_Release(negotiation
);
195 IWMReaderPlaylistBurn_Release(playlist
);
197 IWMLanguageList_Release(langlist
);
199 IReferenceClock_Release(refclock
);
201 IWMReader_Release(reader
);
204 static void test_profile_manager_interfaces(void)
207 IWMProfileManager
*profile
;
209 hr
= WMCreateProfileManager(&profile
);
210 ok(hr
== S_OK
, "WMCreateProfileManager failed 0x%08x\n", hr
);
213 win_skip("Failed to create IWMProfileManager\n");
217 IWMProfileManager_Release(profile
);
220 static void test_WMCreateWriterPriv(void)
222 IWMWriter
*writer
, *writer2
;
225 hr
= WMCreateWriterPriv(&writer
);
226 ok(hr
== S_OK
, "got 0x%08x\n", hr
);
228 hr
= IWMWriter_QueryInterface(writer
, &IID_IWMWriter
, (void**)&writer2
);
229 ok(hr
== S_OK
, "got 0x%08x\n", hr
);
231 IWMWriter_Release(writer
);
232 IWMWriter_Release(writer2
);
239 hr
= CoInitialize(0);
240 ok(hr
== S_OK
, "failed to init com\n");
244 test_wmreader_interfaces();
245 test_wmwriter_interfaces();
246 test_profile_manager_interfaces();
247 test_WMCreateWriterPriv();