oleaut32: Add ARM support to DispCallFunc().
[wine.git] / dlls / wmvcore / tests / wmvcore.c
blobb11a5bf7dea932b0a3965764aac4a94c1a38189b
1 /*
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
18 #define COBJMACROS
19 #define WIN32_LEAN_AND_MEAN
20 #include "initguid.h"
21 #include "wmsdkidl.h"
23 #include "wine/test.h"
25 HRESULT WINAPI WMCreateWriterPriv(IWMWriter **writer);
27 static void test_wmwriter_interfaces(void)
29 HRESULT hr;
30 IWMWriter *writer;
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);
37 if(FAILED(hr))
39 win_skip("Failed to create IWMWriter\n");
40 return;
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);
52 if(header)
53 IWMHeaderInfo_Release(header);
54 if(header2)
55 IWMHeaderInfo2_Release(header2);
56 if(header3)
57 IWMHeaderInfo3_Release(header3);
58 IWMWriter_Release(writer);
61 static void test_wmreader_interfaces(void)
63 HRESULT hr;
64 IWMReader *reader;
65 IWMReaderAdvanced *advanced;
66 IWMReaderAdvanced2 *advanced2;
67 IWMHeaderInfo *header;
68 IWMHeaderInfo2 *header2;
69 IWMHeaderInfo3 *header3;
70 IWMProfile *profile;
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);
90 if(FAILED(hr))
92 win_skip("Failed to create IWMReader\n");
93 return;
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);
162 if(packet)
163 IWMPacketSize_Release(packet);
164 if(packet2)
165 IWMPacketSize2_Release(packet2);
166 if(advanced)
167 IWMReaderAdvanced_Release(advanced);
168 if(advanced2)
169 IWMReaderAdvanced2_Release(advanced2);
170 if(profile)
171 IWMProfile_Release(profile);
172 if(profile2)
173 IWMProfile2_Release(profile2);
174 if(profile3)
175 IWMProfile3_Release(profile3);
176 if(header)
177 IWMHeaderInfo_Release(header);
178 if(header2)
179 IWMHeaderInfo2_Release(header2);
180 if(header3)
181 IWMHeaderInfo3_Release(header3);
182 if(accel)
183 IWMReaderAccelerator_Release(accel);
184 if(timecode)
185 IWMReaderTimecode_Release(timecode);
186 if(netconfig)
187 IWMReaderNetworkConfig_Release(netconfig);
188 if(netconfig2)
189 IWMReaderNetworkConfig2_Release(netconfig2);
190 if(clock)
191 IWMReaderStreamClock_Release(clock);
192 if(negotiation)
193 IWMReaderTypeNegotiation_Release(negotiation);
194 if(playlist)
195 IWMReaderPlaylistBurn_Release(playlist);
196 if(langlist)
197 IWMLanguageList_Release(langlist);
198 if(refclock)
199 IReferenceClock_Release(refclock);
201 IWMReader_Release(reader);
204 static void test_profile_manager_interfaces(void)
206 HRESULT hr;
207 IWMProfileManager *profile;
209 hr = WMCreateProfileManager(&profile);
210 ok(hr == S_OK, "WMCreateProfileManager failed 0x%08x\n", hr);
211 if(FAILED(hr))
213 win_skip("Failed to create IWMProfileManager\n");
214 return;
217 IWMProfileManager_Release(profile);
220 static void test_WMCreateWriterPriv(void)
222 IWMWriter *writer, *writer2;
223 HRESULT hr;
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);
235 START_TEST(wmvcore)
237 HRESULT hr;
239 hr = CoInitialize(0);
240 ok(hr == S_OK, "failed to init com\n");
241 if(hr != S_OK)
242 return;
244 test_wmreader_interfaces();
245 test_wmwriter_interfaces();
246 test_profile_manager_interfaces();
247 test_WMCreateWriterPriv();
249 CoUninitialize();