diff --git a/dlls/mstask/task.c b/dlls/mstask/task.c index 34d1fa010e1..c4e9f84a3f7 100644 --- a/dlls/mstask/task.c +++ b/dlls/mstask/task.c @@ -703,12 +703,12 @@ static ULONG WINAPI MSTASK_IPersistFile_Release( return ref; } -static HRESULT WINAPI MSTASK_IPersistFile_GetClassID( - IPersistFile* iface, - CLSID *pClassID) +static HRESULT WINAPI MSTASK_IPersistFile_GetClassID(IPersistFile *iface, CLSID *clsid) { - FIXME("(%p, %p): stub\n", iface, pClassID); - return E_NOTIMPL; + TRACE("(%p, %p)\n", iface, clsid); + + *clsid = CLSID_CTask; + return S_OK; } static HRESULT WINAPI MSTASK_IPersistFile_IsDirty( diff --git a/dlls/mstask/tests/task_scheduler.c b/dlls/mstask/tests/task_scheduler.c index e1e76e8c9cf..ddbb66068ff 100644 --- a/dlls/mstask/tests/task_scheduler.c +++ b/dlls/mstask/tests/task_scheduler.c @@ -278,6 +278,7 @@ static WCHAR *get_task_curfile(ITask *task) HRESULT hr; IPersistFile *pfile; WCHAR *curfile; + CLSID clsid; hr = ITask_QueryInterface(task, &IID_IPersistFile, (void **)&pfile); ok(hr == S_OK, "QueryInterface error %#x\n", hr); @@ -288,6 +289,13 @@ todo_wine todo_wine ok(curfile && curfile[0] , "curfile should not be NULL\n"); + if (0) /* crashes under Windows */ + hr = IPersistFile_GetClassID(pfile, NULL); + + hr = IPersistFile_GetClassID(pfile, &clsid); + ok(hr == S_OK, "GetClassID error %#x\n", hr); + ok(IsEqualCLSID(&clsid, &CLSID_CTask), "got %s\n", wine_dbgstr_guid(&clsid)); + IPersistFile_Release(pfile); return curfile;