Zebediah Figura : setupapi: Implement SetupQueueCopyIndirectA() on top of the W variant.

Alexandre Julliard julliard at winehq.org
Thu May 2 16:45:08 CDT 2019


Module: wine
Branch: master
Commit: 466b80786fbf7ced695358af3ee87302ed00eb1b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=466b80786fbf7ced695358af3ee87302ed00eb1b

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Wed May  1 18:24:05 2019 -0500

setupapi: Implement SetupQueueCopyIndirectA() on top of the W variant.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/setupapi/queue.c | 55 +++++++++++++++++++++++++--------------------------
 1 file changed, 27 insertions(+), 28 deletions(-)

diff --git a/dlls/setupapi/queue.c b/dlls/setupapi/queue.c
index d0e5916..bc774f3 100644
--- a/dlls/setupapi/queue.c
+++ b/dlls/setupapi/queue.c
@@ -504,36 +504,35 @@ BOOL WINAPI SetupCloseFileQueue( HSPFILEQ handle )
 /***********************************************************************
  *            SetupQueueCopyIndirectA   (SETUPAPI.@)
  */
-BOOL WINAPI SetupQueueCopyIndirectA( PSP_FILE_COPY_PARAMS_A params )
+BOOL WINAPI SetupQueueCopyIndirectA( SP_FILE_COPY_PARAMS_A *paramsA )
 {
-    struct file_queue *queue = params->QueueHandle;
-    struct file_op *op;
-
-    if (!(op = HeapAlloc( GetProcessHeap(), 0, sizeof(*op) ))) return FALSE;
-    op->style      = params->CopyStyle;
-    op->src_root   = strdupAtoW( params->SourceRootPath );
-    op->src_path   = strdupAtoW( params->SourcePath );
-    op->src_file   = strdupAtoW( params->SourceFilename );
-    op->src_descr  = strdupAtoW( params->SourceDescription );
-    op->src_tag    = strdupAtoW( params->SourceTagfile );
-    op->dst_path   = strdupAtoW( params->TargetDirectory );
-    op->dst_file   = strdupAtoW( params->TargetFilename );
-
-    /* some defaults */
-    if (!op->src_file) op->src_file = op->dst_file;
-    if (params->LayoutInf)
-    {
-        get_src_file_info( params->LayoutInf, op );
-        if (!op->dst_path) op->dst_path = get_destination_dir( params->LayoutInf, op->dst_file );
-    }
-
-    TRACE( "root=%s path=%s file=%s -> dir=%s file=%s  descr=%s tag=%s\n",
-           debugstr_w(op->src_root), debugstr_w(op->src_path), debugstr_w(op->src_file),
-           debugstr_w(op->dst_path), debugstr_w(op->dst_file),
-           debugstr_w(op->src_descr), debugstr_w(op->src_tag) );
+    SP_FILE_COPY_PARAMS_W paramsW;
+    BOOL ret;
 
-    queue_file_op( &queue->copy_queue, op );
-    return TRUE;
+    paramsW.cbSize = sizeof(paramsW);
+    paramsW.QueueHandle = paramsA->QueueHandle;
+    paramsW.SourceRootPath = strdupAtoW( paramsA->SourceRootPath );
+    paramsW.SourcePath = strdupAtoW( paramsA->SourcePath );
+    paramsW.SourceFilename = strdupAtoW( paramsA->SourceFilename );
+    paramsW.SourceDescription = strdupAtoW( paramsA->SourceDescription );
+    paramsW.SourceTagfile = strdupAtoW( paramsA->SourceTagfile );
+    paramsW.TargetDirectory = strdupAtoW( paramsA->TargetDirectory );
+    paramsW.TargetFilename = strdupAtoW( paramsA->TargetFilename );
+    paramsW.CopyStyle = paramsA->CopyStyle;
+    paramsW.LayoutInf = paramsA->LayoutInf;
+    paramsW.SecurityDescriptor = strdupAtoW( paramsA->SecurityDescriptor );
+
+    ret = SetupQueueCopyIndirectW( &paramsW );
+
+    heap_free( (WCHAR *)paramsW.SourceRootPath );
+    heap_free( (WCHAR *)paramsW.SourcePath );
+    heap_free( (WCHAR *)paramsW.SourceFilename );
+    heap_free( (WCHAR *)paramsW.SourceDescription );
+    heap_free( (WCHAR *)paramsW.SourceTagfile );
+    heap_free( (WCHAR *)paramsW.TargetDirectory );
+    heap_free( (WCHAR *)paramsW.TargetFilename );
+    heap_free( (WCHAR *)paramsW.SecurityDescriptor );
+    return ret;
 }
 
 




More information about the wine-cvs mailing list