* Sync up to trunk head (r64829).
[reactos.git] / dll / win32 / mstask / factory.c
index 8906d92..25ec76f 100644 (file)
  */
 
 #include "mstask_private.h"
-#include "wine/debug.h"
 
-WINE_DEFAULT_DEBUG_CHANNEL(mstask);
+struct ClassFactoryImpl
+{
+    IClassFactory IClassFactory_iface;
+    LONG ref;
+};
+
+static inline ClassFactoryImpl *impl_from_IClassFactory(IClassFactory *iface)
+{
+    return CONTAINING_RECORD(iface, ClassFactoryImpl, IClassFactory_iface);
+}
 
 static HRESULT WINAPI MSTASK_IClassFactory_QueryInterface(
         LPCLASSFACTORY iface,
         REFIID riid,
         LPVOID *ppvObj)
 {
-    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
+    ClassFactoryImpl *This = impl_from_IClassFactory(iface);
 
     TRACE("IID: %s\n",debugstr_guid(riid));
     if (ppvObj == NULL)
@@ -35,7 +43,7 @@ static HRESULT WINAPI MSTASK_IClassFactory_QueryInterface(
     if (IsEqualGUID(riid, &IID_IUnknown) ||
             IsEqualGUID(riid, &IID_IClassFactory))
     {
-        *ppvObj = &This->lpVtbl;
+        *ppvObj = &This->IClassFactory_iface;
         IClassFactory_AddRef(iface);
         return S_OK;
     }
@@ -45,14 +53,14 @@ static HRESULT WINAPI MSTASK_IClassFactory_QueryInterface(
     return E_NOINTERFACE;
 }
 
-static ULONG WINAPI MSTASK_IClassFactory_AddRef(LPCLASSFACTORY iface)
+static ULONG WINAPI MSTASK_IClassFactory_AddRef(IClassFactory *face)
 {
     TRACE("\n");
     InterlockedIncrement(&dll_ref);
     return 2;
 }
 
-static ULONG WINAPI MSTASK_IClassFactory_Release(LPCLASSFACTORY iface)
+static ULONG WINAPI MSTASK_IClassFactory_Release(IClassFactory *iface)
 {
     TRACE("\n");
     InterlockedDecrement(&dll_ref);
@@ -60,8 +68,8 @@ static ULONG WINAPI MSTASK_IClassFactory_Release(LPCLASSFACTORY iface)
 }
 
 static HRESULT WINAPI MSTASK_IClassFactory_CreateInstance(
-        LPCLASSFACTORY iface,
-        LPUNKNOWN pUnkOuter,
+        IClassFactory *iface,
+        IUnknown *pUnkOuter,
         REFIID riid,
         LPVOID *ppvObj)
 {
@@ -78,21 +86,21 @@ static HRESULT WINAPI MSTASK_IClassFactory_CreateInstance(
     if (FAILED(res))
         return res;
 
-    res = ITaskScheduler_QueryInterface(punk, riid, ppvObj);
-    ITaskScheduler_Release(punk);
+    res = IUnknown_QueryInterface(punk, riid, ppvObj);
+    IUnknown_Release(punk);
     return res;
 }
 
 static HRESULT WINAPI MSTASK_IClassFactory_LockServer(
-        LPCLASSFACTORY iface,
+        IClassFactory *iface,
         BOOL fLock)
 {
     TRACE("\n");
 
-    if (fLock != FALSE)
-        MSTASK_IClassFactory_AddRef(iface);
+    if (fLock)
+        IClassFactory_AddRef(iface);
     else
-        MSTASK_IClassFactory_Release(iface);
+        IClassFactory_Release(iface);
     return S_OK;
 }
 
@@ -105,4 +113,4 @@ static const IClassFactoryVtbl IClassFactory_Vtbl =
     MSTASK_IClassFactory_LockServer
 };
 
-ClassFactoryImpl MSTASK_ClassFactory = { &IClassFactory_Vtbl };
+ClassFactoryImpl MSTASK_ClassFactory = { { &IClassFactory_Vtbl } };