Zebediah Figura : setupapi: Implement W -> A mapping of SPFILENOTIFY_NEEDMEDIA.

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


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

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

setupapi: Implement W -> A mapping of SPFILENOTIFY_NEEDMEDIA.

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

---

 dlls/setupapi/queue.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/dlls/setupapi/queue.c b/dlls/setupapi/queue.c
index e160d9e..0775507 100644
--- a/dlls/setupapi/queue.c
+++ b/dlls/setupapi/queue.c
@@ -247,7 +247,28 @@ UINT CALLBACK QUEUE_callback_WtoA( void *context, UINT notification,
         break;
 
     case SPFILENOTIFY_NEEDMEDIA:
-        FIXME("mapping for %d not implemented\n",notification);
+    {
+        const SOURCE_MEDIA_W *mediaW = (const SOURCE_MEDIA_W *)param1;
+        char path[MAX_PATH];
+        SOURCE_MEDIA_A mediaA;
+
+        mediaA.Tagfile = strdupWtoA(mediaW->Tagfile);
+        mediaA.Description = strdupWtoA(mediaW->Description);
+        mediaA.SourcePath = strdupWtoA(mediaW->SourcePath);
+        mediaA.SourceFile = strdupWtoA(mediaW->SourceFile);
+        mediaA.Flags = mediaW->Flags;
+        path[0] = 0;
+
+        ret = callback_ctx->orig_handler(callback_ctx->orig_context, notification,
+                (UINT_PTR)&mediaA, (UINT_PTR)&path);
+        MultiByteToWideChar(CP_ACP, 0, path, -1, (WCHAR *)param2, MAX_PATH);
+
+        heap_free((char *)mediaA.Tagfile);
+        heap_free((char *)mediaA.Description);
+        heap_free((char *)mediaA.SourcePath);
+        heap_free((char *)mediaA.SourceFile);
+        break;
+    }
     case SPFILENOTIFY_STARTQUEUE:
     case SPFILENOTIFY_ENDQUEUE:
     case SPFILENOTIFY_STARTSUBQUEUE:




More information about the wine-cvs mailing list