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