Author: akhaldi
Date: Sun Jun 16 11:10:20 2013
New Revision: 59226
URL:
http://svn.reactos.org/svn/reactos?rev=59226&view=rev
Log:
[QMGR]
* Sync with Wine 1.5.26.
Modified:
trunk/reactos/dll/win32/qmgr/CMakeLists.txt
trunk/reactos/dll/win32/qmgr/enum_files.c
trunk/reactos/dll/win32/qmgr/enum_jobs.c
trunk/reactos/dll/win32/qmgr/factory.c
trunk/reactos/dll/win32/qmgr/file.c
trunk/reactos/dll/win32/qmgr/job.c
trunk/reactos/dll/win32/qmgr/qmgr.c
trunk/reactos/dll/win32/qmgr/qmgr.h
trunk/reactos/dll/win32/qmgr/service.c
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/qmgr/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/CMakeLists.…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/CMakeLists.txt [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -18,6 +18,7 @@
${CMAKE_CURRENT_BINARY_DIR}/qmgr.def)
add_library(qmgr SHARED ${SOURCE})
+set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/qmgr.inf)
add_idl_headers(qmgr_idlheader qmgr_local.idl)
set_module_type(qmgr win32dll)
target_link_libraries(qmgr uuid wine)
Modified: trunk/reactos/dll/win32/qmgr/enum_files.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/enum_files.…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/enum_files.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/enum_files.c [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -23,64 +23,67 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
-static void EnumBackgroundCopyFilesDestructor(EnumBackgroundCopyFilesImpl *This)
-{
+typedef struct
+{
+ IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles_iface;
+ LONG ref;
+ IBackgroundCopyFile **files;
+ ULONG numFiles;
+ ULONG indexFiles;
+} EnumBackgroundCopyFilesImpl;
+
+static inline EnumBackgroundCopyFilesImpl
*impl_from_IEnumBackgroundCopyFiles(IEnumBackgroundCopyFiles *iface)
+{
+ return CONTAINING_RECORD(iface, EnumBackgroundCopyFilesImpl,
IEnumBackgroundCopyFiles_iface);
+}
+
+static HRESULT WINAPI
BITS_IEnumBackgroundCopyFiles_QueryInterface(IEnumBackgroundCopyFiles *iface,
+ REFIID riid, void **ppv)
+{
+ TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv);
+
+ if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid,
&IID_IEnumBackgroundCopyFiles))
+ {
+ *ppv = iface;
+ IEnumBackgroundCopyFiles_AddRef(iface);
+ return S_OK;
+ }
+
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI BITS_IEnumBackgroundCopyFiles_AddRef(IEnumBackgroundCopyFiles
*iface)
+{
+ EnumBackgroundCopyFilesImpl *This = impl_from_IEnumBackgroundCopyFiles(iface);
+ ULONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+ return ref;
+}
+
+static ULONG WINAPI BITS_IEnumBackgroundCopyFiles_Release(IEnumBackgroundCopyFiles
*iface)
+{
+ EnumBackgroundCopyFilesImpl *This = impl_from_IEnumBackgroundCopyFiles(iface);
+ ULONG ref = InterlockedDecrement(&This->ref);
ULONG i;
- for(i = 0; i < This->numFiles; i++)
- IBackgroundCopyFile_Release(This->files[i]);
-
- HeapFree(GetProcessHeap(), 0, This->files);
- HeapFree(GetProcessHeap(), 0, This);
-}
-
-static ULONG WINAPI BITS_IEnumBackgroundCopyFiles_AddRef(
- IEnumBackgroundCopyFiles* iface)
-{
- EnumBackgroundCopyFilesImpl *This = (EnumBackgroundCopyFilesImpl *) iface;
- return InterlockedIncrement(&This->ref);
-}
-
-static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_QueryInterface(
- IEnumBackgroundCopyFiles* iface,
- REFIID riid,
- void **ppvObject)
-{
- EnumBackgroundCopyFilesImpl *This = (EnumBackgroundCopyFilesImpl *) iface;
- TRACE("IID: %s\n", debugstr_guid(riid));
-
- if (IsEqualGUID(riid, &IID_IUnknown)
- || IsEqualGUID(riid, &IID_IEnumBackgroundCopyFiles))
- {
- *ppvObject = &This->lpVtbl;
- BITS_IEnumBackgroundCopyFiles_AddRef(iface);
- return S_OK;
- }
-
- *ppvObject = NULL;
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI BITS_IEnumBackgroundCopyFiles_Release(
- IEnumBackgroundCopyFiles* iface)
-{
- EnumBackgroundCopyFilesImpl *This = (EnumBackgroundCopyFilesImpl *) iface;
- ULONG ref = InterlockedDecrement(&This->ref);
-
if (ref == 0)
- EnumBackgroundCopyFilesDestructor(This);
+ {
+ for(i = 0; i < This->numFiles; i++)
+ IBackgroundCopyFile_Release(This->files[i]);
+ HeapFree(GetProcessHeap(), 0, This->files);
+ HeapFree(GetProcessHeap(), 0, This);
+ }
return ref;
}
/* Return reference to one or more files in the file enumerator */
-static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Next(
- IEnumBackgroundCopyFiles* iface,
- ULONG celt,
- IBackgroundCopyFile **rgelt,
- ULONG *pceltFetched)
-{
- EnumBackgroundCopyFilesImpl *This = (EnumBackgroundCopyFilesImpl *) iface;
+static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Next(IEnumBackgroundCopyFiles
*iface,
+ ULONG celt, IBackgroundCopyFile **rgelt, ULONG *pceltFetched)
+{
+ EnumBackgroundCopyFilesImpl *This = impl_from_IEnumBackgroundCopyFiles(iface);
ULONG fetched;
ULONG i;
IBackgroundCopyFile *file;
@@ -115,11 +118,10 @@
}
/* Skip over one or more files in the file enumerator */
-static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Skip(
- IEnumBackgroundCopyFiles* iface,
- ULONG celt)
-{
- EnumBackgroundCopyFilesImpl *This = (EnumBackgroundCopyFilesImpl *) iface;
+static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Skip(IEnumBackgroundCopyFiles
*iface,
+ ULONG celt)
+{
+ EnumBackgroundCopyFilesImpl *This = impl_from_IEnumBackgroundCopyFiles(iface);
if (celt > This->numFiles - This->indexFiles)
{
@@ -131,27 +133,24 @@
return S_OK;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Reset(
- IEnumBackgroundCopyFiles* iface)
-{
- EnumBackgroundCopyFilesImpl *This = (EnumBackgroundCopyFilesImpl *) iface;
+static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Reset(IEnumBackgroundCopyFiles
*iface)
+{
+ EnumBackgroundCopyFilesImpl *This = impl_from_IEnumBackgroundCopyFiles(iface);
This->indexFiles = 0;
return S_OK;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Clone(
- IEnumBackgroundCopyFiles* iface,
- IEnumBackgroundCopyFiles **ppenum)
+static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_Clone(IEnumBackgroundCopyFiles
*iface,
+ IEnumBackgroundCopyFiles **ppenum)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_GetCount(
- IEnumBackgroundCopyFiles* iface,
- ULONG *puCount)
-{
- EnumBackgroundCopyFilesImpl *This = (EnumBackgroundCopyFilesImpl *) iface;
+static HRESULT WINAPI BITS_IEnumBackgroundCopyFiles_GetCount(IEnumBackgroundCopyFiles
*iface,
+ ULONG *puCount)
+{
+ EnumBackgroundCopyFilesImpl *This = impl_from_IEnumBackgroundCopyFiles(iface);
*puCount = This->numFiles;
return S_OK;
}
@@ -168,20 +167,19 @@
BITS_IEnumBackgroundCopyFiles_GetCount
};
-HRESULT EnumBackgroundCopyFilesConstructor(LPVOID *ppObj, IBackgroundCopyJob2 *iCopyJob)
+HRESULT EnumBackgroundCopyFilesConstructor(BackgroundCopyJobImpl *job,
IEnumBackgroundCopyFiles **enum_files)
{
EnumBackgroundCopyFilesImpl *This;
BackgroundCopyFileImpl *file;
- BackgroundCopyJobImpl *job = (BackgroundCopyJobImpl *) iCopyJob;
ULONG i;
- TRACE("%p, %p)\n", ppObj, job);
+ TRACE("%p, %p)\n", job, enum_files);
This = HeapAlloc(GetProcessHeap(), 0, sizeof *This);
if (!This)
return E_OUTOFMEMORY;
- This->lpVtbl = &BITS_IEnumBackgroundCopyFiles_Vtbl;
+ This->IEnumBackgroundCopyFiles_iface.lpVtbl =
&BITS_IEnumBackgroundCopyFiles_Vtbl;
This->ref = 1;
/* Create array of files */
@@ -204,12 +202,12 @@
i = 0;
LIST_FOR_EACH_ENTRY(file, &job->files, BackgroundCopyFileImpl, entryFromJob)
{
- file->lpVtbl->AddRef((IBackgroundCopyFile *) file);
- This->files[i] = (IBackgroundCopyFile *) file;
+ IBackgroundCopyFile_AddRef(&file->IBackgroundCopyFile_iface);
+ This->files[i] = &file->IBackgroundCopyFile_iface;
++i;
}
LeaveCriticalSection(&job->cs);
- *ppObj = &This->lpVtbl;
- return S_OK;
-}
+ *enum_files = &This->IEnumBackgroundCopyFiles_iface;
+ return S_OK;
+}
Modified: trunk/reactos/dll/win32/qmgr/enum_jobs.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/enum_jobs.c…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/enum_jobs.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/enum_jobs.c [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -23,63 +23,68 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
-static void EnumBackgroundCopyJobsDestructor(EnumBackgroundCopyJobsImpl *This)
-{
+typedef struct
+{
+ IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs_iface;
+ LONG ref;
+ IBackgroundCopyJob **jobs;
+ ULONG numJobs;
+ ULONG indexJobs;
+} EnumBackgroundCopyJobsImpl;
+
+static inline EnumBackgroundCopyJobsImpl
*impl_from_IEnumBackgroundCopyJobs(IEnumBackgroundCopyJobs *iface)
+{
+ return CONTAINING_RECORD(iface, EnumBackgroundCopyJobsImpl,
IEnumBackgroundCopyJobs_iface);
+}
+
+static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_QueryInterface(IEnumBackgroundCopyJobs
*iface,
+ REFIID riid, void **ppv)
+{
+ TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv);
+
+ if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid,
&IID_IEnumBackgroundCopyJobs))
+ {
+ *ppv = iface;
+ IEnumBackgroundCopyJobs_AddRef(iface);
+ return S_OK;
+ }
+
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI BITS_IEnumBackgroundCopyJobs_AddRef(IEnumBackgroundCopyJobs *iface)
+{
+ EnumBackgroundCopyJobsImpl *This = impl_from_IEnumBackgroundCopyJobs(iface);
+ ULONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI BITS_IEnumBackgroundCopyJobs_Release(IEnumBackgroundCopyJobs *iface)
+{
+ EnumBackgroundCopyJobsImpl *This = impl_from_IEnumBackgroundCopyJobs(iface);
+ ULONG ref = InterlockedDecrement(&This->ref);
ULONG i;
- for(i = 0; i < This->numJobs; i++)
- IBackgroundCopyJob_Release(This->jobs[i]);
-
- HeapFree(GetProcessHeap(), 0, This->jobs);
- HeapFree(GetProcessHeap(), 0, This);
-}
-
-static ULONG WINAPI BITS_IEnumBackgroundCopyJobs_AddRef(
- IEnumBackgroundCopyJobs* iface)
-{
- EnumBackgroundCopyJobsImpl *This = (EnumBackgroundCopyJobsImpl *) iface;
- return InterlockedIncrement(&This->ref);
-}
-
-static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_QueryInterface(
- IEnumBackgroundCopyJobs* iface,
- REFIID riid,
- void **ppvObject)
-{
- EnumBackgroundCopyJobsImpl *This = (EnumBackgroundCopyJobsImpl *) iface;
- TRACE("IID: %s\n", debugstr_guid(riid));
-
- if (IsEqualGUID(riid, &IID_IUnknown)
- || IsEqualGUID(riid, &IID_IEnumBackgroundCopyJobs))
- {
- *ppvObject = &This->lpVtbl;
- BITS_IEnumBackgroundCopyJobs_AddRef(iface);
- return S_OK;
- }
-
- *ppvObject = NULL;
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI BITS_IEnumBackgroundCopyJobs_Release(
- IEnumBackgroundCopyJobs* iface)
-{
- EnumBackgroundCopyJobsImpl *This = (EnumBackgroundCopyJobsImpl *) iface;
- ULONG ref = InterlockedDecrement(&This->ref);
-
- if (ref == 0)
- EnumBackgroundCopyJobsDestructor(This);
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ if (ref == 0) {
+ for(i = 0; i < This->numJobs; i++)
+ IBackgroundCopyJob_Release(This->jobs[i]);
+ HeapFree(GetProcessHeap(), 0, This->jobs);
+ HeapFree(GetProcessHeap(), 0, This);
+ }
return ref;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Next(
- IEnumBackgroundCopyJobs* iface,
- ULONG celt,
- IBackgroundCopyJob **rgelt,
- ULONG *pceltFetched)
-{
- EnumBackgroundCopyJobsImpl *This = (EnumBackgroundCopyJobsImpl *) iface;
+static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Next(IEnumBackgroundCopyJobs *iface,
ULONG celt,
+ IBackgroundCopyJob **rgelt, ULONG *pceltFetched)
+{
+ EnumBackgroundCopyJobsImpl *This = impl_from_IEnumBackgroundCopyJobs(iface);
ULONG fetched;
ULONG i;
IBackgroundCopyJob *job;
@@ -110,11 +115,9 @@
return fetched == celt ? S_OK : S_FALSE;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Skip(
- IEnumBackgroundCopyJobs* iface,
- ULONG celt)
-{
- EnumBackgroundCopyJobsImpl *This = (EnumBackgroundCopyJobsImpl *) iface;
+static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Skip(IEnumBackgroundCopyJobs *iface,
ULONG celt)
+{
+ EnumBackgroundCopyJobsImpl *This = impl_from_IEnumBackgroundCopyJobs(iface);
if (This->numJobs - This->indexJobs < celt)
{
@@ -126,27 +129,24 @@
return S_OK;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Reset(
- IEnumBackgroundCopyJobs* iface)
-{
- EnumBackgroundCopyJobsImpl *This = (EnumBackgroundCopyJobsImpl *) iface;
+static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Reset(IEnumBackgroundCopyJobs *iface)
+{
+ EnumBackgroundCopyJobsImpl *This = impl_from_IEnumBackgroundCopyJobs(iface);
This->indexJobs = 0;
return S_OK;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Clone(
- IEnumBackgroundCopyJobs* iface,
- IEnumBackgroundCopyJobs **ppenum)
+static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_Clone(IEnumBackgroundCopyJobs *iface,
+ IEnumBackgroundCopyJobs **ppenum)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
}
-static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_GetCount(
- IEnumBackgroundCopyJobs* iface,
+static HRESULT WINAPI BITS_IEnumBackgroundCopyJobs_GetCount(IEnumBackgroundCopyJobs
*iface,
ULONG *puCount)
{
- EnumBackgroundCopyJobsImpl *This = (EnumBackgroundCopyJobsImpl *) iface;
+ EnumBackgroundCopyJobsImpl *This = impl_from_IEnumBackgroundCopyJobs(iface);
*puCount = This->numJobs;
return S_OK;
}
@@ -163,20 +163,18 @@
BITS_IEnumBackgroundCopyJobs_GetCount
};
-HRESULT EnumBackgroundCopyJobsConstructor(LPVOID *ppObj,
- IBackgroundCopyManager* copyManager)
-{
- BackgroundCopyManagerImpl *qmgr = (BackgroundCopyManagerImpl *) copyManager;
+HRESULT enum_copy_job_create(BackgroundCopyManagerImpl *qmgr, IEnumBackgroundCopyJobs
**enumjob)
+{
EnumBackgroundCopyJobsImpl *This;
BackgroundCopyJobImpl *job;
ULONG i;
- TRACE("%p, %p)\n", ppObj, copyManager);
+ TRACE("%p, %p)\n", qmgr, enumjob);
This = HeapAlloc(GetProcessHeap(), 0, sizeof *This);
if (!This)
return E_OUTOFMEMORY;
- This->lpVtbl = &BITS_IEnumBackgroundCopyJobs_Vtbl;
+ This->IEnumBackgroundCopyJobs_iface.lpVtbl =
&BITS_IEnumBackgroundCopyJobs_Vtbl;
This->ref = 1;
/* Create array of jobs */
@@ -202,12 +200,12 @@
i = 0;
LIST_FOR_EACH_ENTRY(job, &qmgr->jobs, BackgroundCopyJobImpl, entryFromQmgr)
{
- IBackgroundCopyJob *iJob = (IBackgroundCopyJob *) job;
- IBackgroundCopyJob_AddRef(iJob);
- This->jobs[i++] = iJob;
+ IBackgroundCopyJob *job_iface =
(IBackgroundCopyJob*)&job->IBackgroundCopyJob2_iface;
+ IBackgroundCopyJob_AddRef(job_iface);
+ This->jobs[i++] = job_iface;
}
LeaveCriticalSection(&qmgr->cs);
- *ppObj = &This->lpVtbl;
- return S_OK;
-}
+ *enumjob = &This->IEnumBackgroundCopyJobs_iface;
+ return S_OK;
+}
Modified: trunk/reactos/dll/win32/qmgr/factory.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/factory.c?r…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/factory.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/factory.c [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -26,20 +26,17 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
static ULONG WINAPI
-BITS_IClassFactory_AddRef(LPCLASSFACTORY iface)
+BITS_IClassFactory_AddRef(IClassFactory *iface)
{
- return 2;
+ return 2; /* non-heap based object */
}
static HRESULT WINAPI
-BITS_IClassFactory_QueryInterface(LPCLASSFACTORY iface, REFIID riid,
- LPVOID *ppvObj)
+BITS_IClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppvObj)
{
- ClassFactoryImpl *This = (ClassFactoryImpl *) iface;
-
if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid,
&IID_IClassFactory))
{
- *ppvObj = &This->lpVtbl;
+ *ppvObj = &BITS_ClassFactory.IClassFactory_iface;
return S_OK;
}
@@ -48,14 +45,14 @@
}
static ULONG WINAPI
-BITS_IClassFactory_Release(LPCLASSFACTORY iface)
+BITS_IClassFactory_Release(IClassFactory *iface)
{
- return 1;
+ return 1; /* non-heap based object */
}
static HRESULT WINAPI
-BITS_IClassFactory_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pUnkOuter,
- REFIID riid, LPVOID *ppvObj)
+BITS_IClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter, REFIID
riid,
+ void **ppvObj)
{
HRESULT res;
IUnknown *punk = NULL;
@@ -75,7 +72,7 @@
}
static HRESULT WINAPI
-BITS_IClassFactory_LockServer(LPCLASSFACTORY iface, BOOL fLock)
+BITS_IClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
@@ -92,5 +89,5 @@
ClassFactoryImpl BITS_ClassFactory =
{
- &BITS_IClassFactory_Vtbl
+ { &BITS_IClassFactory_Vtbl }
};
Modified: trunk/reactos/dll/win32/qmgr/file.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/file.c?rev=…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/file.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/file.c [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -39,48 +39,55 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
-static void BackgroundCopyFileDestructor(BackgroundCopyFileImpl *This)
-{
- IBackgroundCopyJob_Release((IBackgroundCopyJob *) This->owner);
- HeapFree(GetProcessHeap(), 0, This->info.LocalName);
- HeapFree(GetProcessHeap(), 0, This->info.RemoteName);
- HeapFree(GetProcessHeap(), 0, This);
-}
-
-static ULONG WINAPI BITS_IBackgroundCopyFile_AddRef(IBackgroundCopyFile* iface)
-{
- BackgroundCopyFileImpl *This = (BackgroundCopyFileImpl *) iface;
- return InterlockedIncrement(&This->ref);
+static inline BackgroundCopyFileImpl *impl_from_IBackgroundCopyFile(IBackgroundCopyFile
*iface)
+{
+ return CONTAINING_RECORD(iface, BackgroundCopyFileImpl, IBackgroundCopyFile_iface);
}
static HRESULT WINAPI BITS_IBackgroundCopyFile_QueryInterface(
IBackgroundCopyFile* iface,
REFIID riid,
- void **ppvObject)
-{
- BackgroundCopyFileImpl *This = (BackgroundCopyFileImpl *) iface;
+ void **obj)
+{
+ BackgroundCopyFileImpl *This = impl_from_IBackgroundCopyFile(iface);
+
+ TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), obj);
if (IsEqualGUID(riid, &IID_IUnknown)
|| IsEqualGUID(riid, &IID_IBackgroundCopyFile))
{
- *ppvObject = &This->lpVtbl;
- BITS_IBackgroundCopyFile_AddRef(iface);
+ *obj = iface;
+ IBackgroundCopyFile_AddRef(iface);
return S_OK;
}
- *ppvObject = NULL;
+ *obj = NULL;
return E_NOINTERFACE;
}
+static ULONG WINAPI BITS_IBackgroundCopyFile_AddRef(IBackgroundCopyFile* iface)
+{
+ BackgroundCopyFileImpl *This = impl_from_IBackgroundCopyFile(iface);
+ ULONG ref = InterlockedIncrement(&This->ref);
+ TRACE("(%p)->(%d)\n", This, ref);
+ return ref;
+}
static ULONG WINAPI BITS_IBackgroundCopyFile_Release(
IBackgroundCopyFile* iface)
{
- BackgroundCopyFileImpl *This = (BackgroundCopyFileImpl *) iface;
+ BackgroundCopyFileImpl *This = impl_from_IBackgroundCopyFile(iface);
ULONG ref = InterlockedDecrement(&This->ref);
+ TRACE("(%p)->(%d)\n", This, ref);
+
if (ref == 0)
- BackgroundCopyFileDestructor(This);
+ {
+ IBackgroundCopyJob2_Release(&This->owner->IBackgroundCopyJob2_iface);
+ HeapFree(GetProcessHeap(), 0, This->info.LocalName);
+ HeapFree(GetProcessHeap(), 0, This->info.RemoteName);
+ HeapFree(GetProcessHeap(), 0, This);
+ }
return ref;
}
@@ -90,7 +97,7 @@
IBackgroundCopyFile* iface,
LPWSTR *pVal)
{
- BackgroundCopyFileImpl *This = (BackgroundCopyFileImpl *) iface;
+ BackgroundCopyFileImpl *This = impl_from_IBackgroundCopyFile(iface);
int n = (lstrlenW(This->info.RemoteName) + 1) * sizeof(WCHAR);
*pVal = CoTaskMemAlloc(n);
@@ -105,7 +112,7 @@
IBackgroundCopyFile* iface,
LPWSTR *pVal)
{
- BackgroundCopyFileImpl *This = (BackgroundCopyFileImpl *) iface;
+ BackgroundCopyFileImpl *This = impl_from_IBackgroundCopyFile(iface);
int n = (lstrlenW(This->info.LocalName) + 1) * sizeof(WCHAR);
*pVal = CoTaskMemAlloc(n);
@@ -120,7 +127,7 @@
IBackgroundCopyFile* iface,
BG_FILE_PROGRESS *pVal)
{
- BackgroundCopyFileImpl *This = (BackgroundCopyFileImpl *) iface;
+ BackgroundCopyFileImpl *This = impl_from_IBackgroundCopyFile(iface);
EnterCriticalSection(&This->owner->cs);
pVal->BytesTotal = This->fileProgress.BytesTotal;
@@ -143,13 +150,12 @@
HRESULT BackgroundCopyFileConstructor(BackgroundCopyJobImpl *owner,
LPCWSTR remoteName, LPCWSTR localName,
- LPVOID *ppObj)
+ BackgroundCopyFileImpl **file)
{
BackgroundCopyFileImpl *This;
int n;
- TRACE("(%s,%s,%p)\n", debugstr_w(remoteName),
- debugstr_w(localName), ppObj);
+ TRACE("(%s, %s, %p)\n", debugstr_w(remoteName), debugstr_w(localName),
file);
This = HeapAlloc(GetProcessHeap(), 0, sizeof *This);
if (!This)
@@ -174,16 +180,16 @@
}
memcpy(This->info.LocalName, localName, n);
- This->lpVtbl = &BITS_IBackgroundCopyFile_Vtbl;
+ This->IBackgroundCopyFile_iface.lpVtbl = &BITS_IBackgroundCopyFile_Vtbl;
This->ref = 1;
This->fileProgress.BytesTotal = BG_SIZE_UNKNOWN;
This->fileProgress.BytesTransferred = 0;
This->fileProgress.Completed = FALSE;
This->owner = owner;
- IBackgroundCopyJob_AddRef((IBackgroundCopyJob *) owner);
-
- *ppObj = &This->lpVtbl;
+ IBackgroundCopyJob2_AddRef(&owner->IBackgroundCopyJob2_iface);
+
+ *file = This;
return S_OK;
}
@@ -217,25 +223,30 @@
typedef struct
{
- const IBindStatusCallbackVtbl *lpVtbl;
+ IBindStatusCallback IBindStatusCallback_iface;
BackgroundCopyFileImpl *file;
LONG ref;
} DLBindStatusCallback;
+static inline DLBindStatusCallback *impl_from_IBindStatusCallback(IBindStatusCallback
*iface)
+{
+ return CONTAINING_RECORD(iface, DLBindStatusCallback, IBindStatusCallback_iface);
+}
+
static ULONG WINAPI DLBindStatusCallback_AddRef(IBindStatusCallback *iface)
{
- DLBindStatusCallback *This = (DLBindStatusCallback *) iface;
+ DLBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
return InterlockedIncrement(&This->ref);
}
static ULONG WINAPI DLBindStatusCallback_Release(IBindStatusCallback *iface)
{
- DLBindStatusCallback *This = (DLBindStatusCallback *) iface;
+ DLBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
ULONG ref = InterlockedDecrement(&This->ref);
if (ref == 0)
{
- IBackgroundCopyFile_Release((IBackgroundCopyFile *) This->file);
+ IBackgroundCopyFile_Release(&This->file->IBackgroundCopyFile_iface);
HeapFree(GetProcessHeap(), 0, This);
}
@@ -247,12 +258,12 @@
REFIID riid,
void **ppvObject)
{
- DLBindStatusCallback *This = (DLBindStatusCallback *) iface;
+ DLBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
if (IsEqualGUID(riid, &IID_IUnknown)
|| IsEqualGUID(riid, &IID_IBindStatusCallback))
{
- *ppvObject = &This->lpVtbl;
+ *ppvObject = &This->IBindStatusCallback_iface;
DLBindStatusCallback_AddRef(iface);
return S_OK;
}
@@ -308,7 +319,7 @@
ULONG statusCode,
LPCWSTR statusText)
{
- DLBindStatusCallback *This = (DLBindStatusCallback *) iface;
+ DLBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
BackgroundCopyFileImpl *file = This->file;
BackgroundCopyJobImpl *job = file->owner;
ULONG64 diff;
@@ -363,8 +374,8 @@
if (!This)
return NULL;
- This->lpVtbl = &DLBindStatusCallback_Vtbl;
- IBackgroundCopyFile_AddRef((IBackgroundCopyFile *) file);
+ This->IBindStatusCallback_iface.lpVtbl = &DLBindStatusCallback_Vtbl;
+ IBackgroundCopyFile_AddRef(&file->IBackgroundCopyFile_iface);
This->file = file;
This->ref = 1;
return This;
@@ -373,7 +384,7 @@
BOOL processFile(BackgroundCopyFileImpl *file, BackgroundCopyJobImpl *job)
{
static const WCHAR prefix[] = {'B','I','T', 0};
- IBindStatusCallback *callbackObj;
+ DLBindStatusCallback *callbackObj;
WCHAR tmpDir[MAX_PATH];
WCHAR tmpName[MAX_PATH];
HRESULT hr;
@@ -394,7 +405,7 @@
return FALSE;
}
- callbackObj = (IBindStatusCallback *) DLBindStatusCallbackConstructor(file);
+ callbackObj = DLBindStatusCallbackConstructor(file);
if (!callbackObj)
{
ERR("Out of memory\n");
@@ -416,8 +427,9 @@
transitionJobState(job, BG_JOB_STATE_QUEUED, BG_JOB_STATE_TRANSFERRING);
DeleteUrlCacheEntryW(file->info.RemoteName);
- hr = URLDownloadToFileW(NULL, file->info.RemoteName, tmpName, 0, callbackObj);
- IBindStatusCallback_Release(callbackObj);
+ hr = URLDownloadToFileW(NULL, file->info.RemoteName, tmpName, 0,
+ &callbackObj->IBindStatusCallback_iface);
+ IBindStatusCallback_Release(&callbackObj->IBindStatusCallback_iface);
if (hr == INET_E_DOWNLOAD_FAILURE)
{
TRACE("URLDownload failed, trying local file copy\n");
Modified: trunk/reactos/dll/win32/qmgr/job.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/job.c?rev=5…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/job.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/job.c [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -28,45 +28,53 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
-static void BackgroundCopyJobDestructor(BackgroundCopyJobImpl *This)
-{
- DeleteCriticalSection(&This->cs);
- HeapFree(GetProcessHeap(), 0, This->displayName);
- HeapFree(GetProcessHeap(), 0, This);
-}
-
-static ULONG WINAPI BITS_IBackgroundCopyJob_AddRef(IBackgroundCopyJob2 *iface)
-{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
- return InterlockedIncrement(&This->ref);
+static inline BackgroundCopyJobImpl *impl_from_IBackgroundCopyJob2(IBackgroundCopyJob2
*iface)
+{
+ return CONTAINING_RECORD(iface, BackgroundCopyJobImpl, IBackgroundCopyJob2_iface);
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_QueryInterface(
- IBackgroundCopyJob2 *iface, REFIID riid, LPVOID *ppvObject)
-{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
- TRACE("IID: %s\n", debugstr_guid(riid));
+ IBackgroundCopyJob2 *iface, REFIID riid, void **obj)
+{
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
+
+ TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), obj);
if (IsEqualGUID(riid, &IID_IUnknown)
|| IsEqualGUID(riid, &IID_IBackgroundCopyJob)
|| IsEqualGUID(riid, &IID_IBackgroundCopyJob2))
{
- *ppvObject = &This->lpVtbl;
- BITS_IBackgroundCopyJob_AddRef(iface);
+ *obj = iface;
+ IBackgroundCopyJob2_AddRef(iface);
return S_OK;
}
- *ppvObject = NULL;
+ *obj = NULL;
return E_NOINTERFACE;
}
+static ULONG WINAPI BITS_IBackgroundCopyJob_AddRef(IBackgroundCopyJob2 *iface)
+{
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
+ ULONG ref = InterlockedIncrement(&This->ref);
+ TRACE("(%p)->(%d)\n", This, ref);
+ return ref;
+}
+
static ULONG WINAPI BITS_IBackgroundCopyJob_Release(IBackgroundCopyJob2 *iface)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
ULONG ref = InterlockedDecrement(&This->ref);
+ TRACE("(%p)->(%d)\n", This, ref);
+
if (ref == 0)
- BackgroundCopyJobDestructor(This);
+ {
+ This->cs.DebugInfo->Spare[0] = 0;
+ DeleteCriticalSection(&This->cs);
+ HeapFree(GetProcessHeap(), 0, This->displayName);
+ HeapFree(GetProcessHeap(), 0, This);
+ }
return ref;
}
@@ -81,7 +89,7 @@
ULONG i;
for (i = 0; i < cFileCount; ++i)
{
- HRESULT hr = IBackgroundCopyJob_AddFile(iface, pFileSet[i].RemoteName,
+ HRESULT hr = IBackgroundCopyJob2_AddFile(iface, pFileSet[i].RemoteName,
pFileSet[i].LocalName);
if (FAILED(hr))
return hr;
@@ -94,21 +102,19 @@
LPCWSTR RemoteUrl,
LPCWSTR LocalName)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
- IBackgroundCopyFile *pFile;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
BackgroundCopyFileImpl *file;
HRESULT res;
/* We should return E_INVALIDARG in these cases. */
FIXME("Check for valid filenames and supported protocols\n");
- res = BackgroundCopyFileConstructor(This, RemoteUrl, LocalName, (LPVOID *)
&pFile);
+ res = BackgroundCopyFileConstructor(This, RemoteUrl, LocalName, &file);
if (res != S_OK)
return res;
/* Add a reference to the file to file list */
- IBackgroundCopyFile_AddRef(pFile);
- file = (BackgroundCopyFileImpl *) pFile;
+ IBackgroundCopyFile_AddRef(&file->IBackgroundCopyFile_iface);
EnterCriticalSection(&This->cs);
list_add_head(&This->files, &file->entryFromJob);
This->jobProgress.BytesTotal = BG_SIZE_UNKNOWN;
@@ -120,10 +126,11 @@
static HRESULT WINAPI BITS_IBackgroundCopyJob_EnumFiles(
IBackgroundCopyJob2 *iface,
- IEnumBackgroundCopyFiles **ppEnum)
-{
- TRACE("\n");
- return EnumBackgroundCopyFilesConstructor((LPVOID *) ppEnum, iface);
+ IEnumBackgroundCopyFiles **enum_files)
+{
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
+ TRACE("(%p)->(%p)\n", This, enum_files);
+ return EnumBackgroundCopyFilesConstructor(This, enum_files);
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_Suspend(
@@ -136,7 +143,7 @@
static HRESULT WINAPI BITS_IBackgroundCopyJob_Resume(
IBackgroundCopyJob2 *iface)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
HRESULT rv = S_OK;
EnterCriticalSection(&globalMgr.cs);
@@ -170,7 +177,7 @@
static HRESULT WINAPI BITS_IBackgroundCopyJob_Complete(
IBackgroundCopyJob2 *iface)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
HRESULT rv = S_OK;
EnterCriticalSection(&This->cs);
@@ -213,7 +220,7 @@
IBackgroundCopyJob2 *iface,
GUID *pVal)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
*pVal = This->jobId;
return S_OK;
}
@@ -222,7 +229,7 @@
IBackgroundCopyJob2 *iface,
BG_JOB_TYPE *pVal)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
if (!pVal)
return E_INVALIDARG;
@@ -235,7 +242,7 @@
IBackgroundCopyJob2 *iface,
BG_JOB_PROGRESS *pVal)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
if (!pVal)
return E_INVALIDARG;
@@ -262,7 +269,7 @@
IBackgroundCopyJob2 *iface,
BG_JOB_STATE *pVal)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
if (!pVal)
return E_INVALIDARG;
@@ -300,7 +307,7 @@
IBackgroundCopyJob2 *iface,
LPWSTR *pVal)
{
- BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
+ BackgroundCopyJobImpl *This = impl_from_IBackgroundCopyJob2(iface);
int n;
if (!pVal)
@@ -562,21 +569,22 @@
BITS_IBackgroundCopyJob_RemoveCredentials
};
-HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type,
- GUID *pJobId, LPVOID *ppObj)
+HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type, GUID *job_id,
BackgroundCopyJobImpl **job)
{
HRESULT hr;
BackgroundCopyJobImpl *This;
int n;
- TRACE("(%s,%d,%p)\n", debugstr_w(displayName), type, ppObj);
+ TRACE("(%s,%d,%p)\n", debugstr_w(displayName), type, job);
This = HeapAlloc(GetProcessHeap(), 0, sizeof *This);
if (!This)
return E_OUTOFMEMORY;
- This->lpVtbl = &BITS_IBackgroundCopyJob_Vtbl;
+ This->IBackgroundCopyJob2_iface.lpVtbl = &BITS_IBackgroundCopyJob_Vtbl;
InitializeCriticalSection(&This->cs);
+ This->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ":
BackgroundCopyJobImpl.cs");
+
This->ref = 1;
This->type = type;
@@ -584,6 +592,7 @@
This->displayName = HeapAlloc(GetProcessHeap(), 0, n);
if (!This->displayName)
{
+ This->cs.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->cs);
HeapFree(GetProcessHeap(), 0, This);
return E_OUTOFMEMORY;
@@ -593,12 +602,13 @@
hr = CoCreateGuid(&This->jobId);
if (FAILED(hr))
{
+ This->cs.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->cs);
HeapFree(GetProcessHeap(), 0, This->displayName);
HeapFree(GetProcessHeap(), 0, This);
return hr;
}
- *pJobId = This->jobId;
+ *job_id = This->jobId;
list_init(&This->files);
This->jobProgress.BytesTotal = 0;
@@ -608,7 +618,7 @@
This->state = BG_JOB_STATE_SUSPENDED;
- *ppObj = &This->lpVtbl;
+ *job = This;
return S_OK;
}
Modified: trunk/reactos/dll/win32/qmgr/qmgr.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/qmgr.c?rev=…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/qmgr.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/qmgr.c [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -23,93 +23,72 @@
WINE_DEFAULT_DEBUG_CHANNEL(qmgr);
-/* Add a reference to the iface pointer */
-static ULONG WINAPI BITS_IBackgroundCopyManager_AddRef(
- IBackgroundCopyManager* iface)
+BackgroundCopyManagerImpl globalMgr;
+
+static HRESULT WINAPI BITS_IBackgroundCopyManager_QueryInterface(IBackgroundCopyManager
*iface,
+ REFIID riid, void **ppv)
+{
+ TRACE("(%p,%s,%p)\n", iface, debugstr_guid(riid), ppv);
+
+ if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid,
&IID_IBackgroundCopyManager))
+ {
+ *ppv = iface;
+ IBackgroundCopyManager_AddRef(iface);
+ return S_OK;
+ }
+
+ *ppv = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG WINAPI BITS_IBackgroundCopyManager_AddRef(IBackgroundCopyManager *iface)
{
return 2;
}
-/* Attempt to provide a new interface to interact with iface */
-static HRESULT WINAPI BITS_IBackgroundCopyManager_QueryInterface(
- IBackgroundCopyManager* iface,
- REFIID riid,
- LPVOID *ppvObject)
-{
- BackgroundCopyManagerImpl * This = (BackgroundCopyManagerImpl *)iface;
-
- TRACE("IID: %s\n", debugstr_guid(riid));
-
- if (IsEqualGUID(riid, &IID_IUnknown) ||
- IsEqualGUID(riid, &IID_IBackgroundCopyManager))
- {
- *ppvObject = &This->lpVtbl;
- BITS_IBackgroundCopyManager_AddRef(iface);
- return S_OK;
- }
-
- *ppvObject = NULL;
- return E_NOINTERFACE;
-}
-
-/* Release an interface to iface */
-static ULONG WINAPI BITS_IBackgroundCopyManager_Release(
- IBackgroundCopyManager* iface)
+static ULONG WINAPI BITS_IBackgroundCopyManager_Release(IBackgroundCopyManager *iface)
{
return 1;
}
/*** IBackgroundCopyManager interface methods ***/
-static HRESULT WINAPI BITS_IBackgroundCopyManager_CreateJob(
- IBackgroundCopyManager* iface,
- LPCWSTR DisplayName,
- BG_JOB_TYPE Type,
- GUID *pJobId,
- IBackgroundCopyJob **ppJob)
+static HRESULT WINAPI BITS_IBackgroundCopyManager_CreateJob(IBackgroundCopyManager
*iface,
+ LPCWSTR DisplayName, BG_JOB_TYPE Type, GUID *pJobId, IBackgroundCopyJob **ppJob)
{
- BackgroundCopyManagerImpl * This = (BackgroundCopyManagerImpl *) iface;
BackgroundCopyJobImpl *job;
HRESULT hres;
TRACE("\n");
- hres = BackgroundCopyJobConstructor(DisplayName, Type, pJobId,
- (LPVOID *) ppJob);
+ hres = BackgroundCopyJobConstructor(DisplayName, Type, pJobId, &job);
if (FAILED(hres))
return hres;
/* Add a reference to the job to job list */
+ *ppJob = (IBackgroundCopyJob*)&job->IBackgroundCopyJob2_iface;
IBackgroundCopyJob_AddRef(*ppJob);
- job = (BackgroundCopyJobImpl *) *ppJob;
- EnterCriticalSection(&This->cs);
- list_add_head(&This->jobs, &job->entryFromQmgr);
- LeaveCriticalSection(&This->cs);
+ EnterCriticalSection(&globalMgr.cs);
+ list_add_head(&globalMgr.jobs, &job->entryFromQmgr);
+ LeaveCriticalSection(&globalMgr.cs);
return S_OK;
}
-static HRESULT WINAPI BITS_IBackgroundCopyManager_GetJob(
- IBackgroundCopyManager* iface,
- REFGUID jobID,
- IBackgroundCopyJob **ppJob)
+static HRESULT WINAPI BITS_IBackgroundCopyManager_GetJob(IBackgroundCopyManager *iface,
+ REFGUID jobID, IBackgroundCopyJob **ppJob)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
}
-static HRESULT WINAPI BITS_IBackgroundCopyManager_EnumJobs(
- IBackgroundCopyManager* iface,
- DWORD dwFlags,
- IEnumBackgroundCopyJobs **ppEnum)
+static HRESULT WINAPI BITS_IBackgroundCopyManager_EnumJobs(IBackgroundCopyManager
*iface,
+ DWORD dwFlags, IEnumBackgroundCopyJobs **ppEnum)
{
TRACE("\n");
- return EnumBackgroundCopyJobsConstructor((LPVOID *) ppEnum, iface);
+ return enum_copy_job_create(&globalMgr, ppEnum);
}
-static HRESULT WINAPI BITS_IBackgroundCopyManager_GetErrorDescription(
- IBackgroundCopyManager* iface,
- HRESULT hResult,
- DWORD LanguageId,
- LPWSTR *pErrorDescription)
+static HRESULT WINAPI
BITS_IBackgroundCopyManager_GetErrorDescription(IBackgroundCopyManager *iface,
+ HRESULT hResult, DWORD LanguageId, LPWSTR *pErrorDescription)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
@@ -128,7 +107,7 @@
};
BackgroundCopyManagerImpl globalMgr = {
- &BITS_IBackgroundCopyManager_Vtbl,
+ { &BITS_IBackgroundCopyManager_Vtbl },
{ NULL, -1, 0, 0, 0, 0 },
NULL,
LIST_INIT(globalMgr.jobs)
@@ -161,7 +140,7 @@
LIST_FOR_EACH_ENTRY_SAFE(job, jobCur, &qmgr->jobs,
BackgroundCopyJobImpl, entryFromQmgr)
{
list_remove(&job->entryFromQmgr);
- IBackgroundCopyJob_Release((IBackgroundCopyJob *) job);
+ IBackgroundCopyJob2_Release(&job->IBackgroundCopyJob2_iface);
}
return 0;
}
@@ -176,7 +155,7 @@
if (job->state == BG_JOB_STATE_ACKNOWLEDGED || job->state ==
BG_JOB_STATE_CANCELLED)
{
list_remove(&job->entryFromQmgr);
- IBackgroundCopyJob_Release((IBackgroundCopyJob *) job);
+ IBackgroundCopyJob2_Release(&job->IBackgroundCopyJob2_iface);
}
else if (job->state == BG_JOB_STATE_QUEUED)
{
Modified: trunk/reactos/dll/win32/qmgr/qmgr.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/qmgr.h?rev=…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/qmgr.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/qmgr.h [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -40,7 +40,7 @@
/* Background copy job vtbl and related data */
typedef struct
{
- const IBackgroundCopyJob2Vtbl *lpVtbl;
+ IBackgroundCopyJob2 IBackgroundCopyJob2_iface;
LONG ref;
LPWSTR displayName;
BG_JOB_TYPE type;
@@ -53,30 +53,10 @@
struct list entryFromQmgr;
} BackgroundCopyJobImpl;
-/* Enum background copy jobs vtbl and related data */
-typedef struct
-{
- const IEnumBackgroundCopyJobsVtbl *lpVtbl;
- LONG ref;
- IBackgroundCopyJob **jobs;
- ULONG numJobs;
- ULONG indexJobs;
-} EnumBackgroundCopyJobsImpl;
-
-/* Enum background copy files vtbl and related data */
-typedef struct
-{
- const IEnumBackgroundCopyFilesVtbl *lpVtbl;
- LONG ref;
- IBackgroundCopyFile **files;
- ULONG numFiles;
- ULONG indexFiles;
-} EnumBackgroundCopyFilesImpl;
-
/* Background copy file vtbl and related data */
typedef struct
{
- const IBackgroundCopyFileVtbl *lpVtbl;
+ IBackgroundCopyFile IBackgroundCopyFile_iface;
LONG ref;
BG_FILE_INFO info;
BG_FILE_PROGRESS fileProgress;
@@ -88,7 +68,7 @@
/* Background copy manager vtbl and related data */
typedef struct
{
- const IBackgroundCopyManagerVtbl *lpVtbl;
+ IBackgroundCopyManager IBackgroundCopyManager_iface;
/* Protects job list, job states, and jobEvent */
CRITICAL_SECTION cs;
HANDLE jobEvent;
@@ -97,26 +77,25 @@
typedef struct
{
- const IClassFactoryVtbl *lpVtbl;
+ IClassFactory IClassFactory_iface;
} ClassFactoryImpl;
-extern HANDLE stop_event;
-extern ClassFactoryImpl BITS_ClassFactory;
-extern BackgroundCopyManagerImpl globalMgr;
+extern HANDLE stop_event DECLSPEC_HIDDEN;
+extern ClassFactoryImpl BITS_ClassFactory DECLSPEC_HIDDEN;
+extern BackgroundCopyManagerImpl globalMgr DECLSPEC_HIDDEN;
-HRESULT BackgroundCopyManagerConstructor(IUnknown *pUnkOuter, LPVOID *ppObj);
+HRESULT BackgroundCopyManagerConstructor(IUnknown *pUnkOuter, LPVOID *ppObj)
DECLSPEC_HIDDEN;
HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type,
- GUID *pJobId, LPVOID *ppObj);
-HRESULT EnumBackgroundCopyJobsConstructor(LPVOID *ppObj,
- IBackgroundCopyManager* copyManager);
+ GUID *pJobId, BackgroundCopyJobImpl **job)
DECLSPEC_HIDDEN;
+HRESULT enum_copy_job_create(BackgroundCopyManagerImpl *qmgr,
+ IEnumBackgroundCopyJobs **enumjob) DECLSPEC_HIDDEN;
HRESULT BackgroundCopyFileConstructor(BackgroundCopyJobImpl *owner,
LPCWSTR remoteName, LPCWSTR localName,
- LPVOID *ppObj);
-HRESULT EnumBackgroundCopyFilesConstructor(LPVOID *ppObj,
- IBackgroundCopyJob2 *copyJob);
-DWORD WINAPI fileTransfer(void *param);
-void processJob(BackgroundCopyJobImpl *job);
-BOOL processFile(BackgroundCopyFileImpl *file, BackgroundCopyJobImpl *job);
+ BackgroundCopyFileImpl **file) DECLSPEC_HIDDEN;
+HRESULT EnumBackgroundCopyFilesConstructor(BackgroundCopyJobImpl*,
IEnumBackgroundCopyFiles**) DECLSPEC_HIDDEN;
+DWORD WINAPI fileTransfer(void *param) DECLSPEC_HIDDEN;
+void processJob(BackgroundCopyJobImpl *job) DECLSPEC_HIDDEN;
+BOOL processFile(BackgroundCopyFileImpl *file, BackgroundCopyJobImpl *job)
DECLSPEC_HIDDEN;
/* Little helper functions */
static inline char *
Modified: trunk/reactos/dll/win32/qmgr/service.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/qmgr/service.c?r…
==============================================================================
--- trunk/reactos/dll/win32/qmgr/service.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/qmgr/service.c [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -95,9 +95,8 @@
return FALSE;
hr = CoRegisterClassObject(&CLSID_BackgroundCopyManager,
- (IUnknown *) &BITS_ClassFactory,
- CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE,
- &dwReg);
+ (IUnknown *) &BITS_ClassFactory.IClassFactory_iface,
+ CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwReg);
if (FAILED(hr))
return FALSE;
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sun Jun 16 11:10:20 2013
@@ -146,7 +146,7 @@
reactos/dll/win32/printui # Synced to Wine-1.5.4
reactos/dll/win32/propsys # Synced to Wine-1.5.26
reactos/dll/win32/pstorec # Synced to Wine-1.5.4
-reactos/dll/win32/qmgr # Synced to Wine-1.2-rc5?
+reactos/dll/win32/qmgr # Synced to Wine-1.5-26
reactos/dll/win32/qmgrprxy # Synced to Wine-1.14?
reactos/dll/win32/query # Synced to Wine-1.5.19
reactos/dll/win32/rasapi32 # Synced to Wine-1.5.4