Module: wine Branch: master Commit: e8c4dbcec21d9b65cb680c6c773e560f761d42f8 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e8c4dbcec21d9b65cb680c6c7...
Author: Zebediah Figura z.figura12@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@gmail.com Signed-off-by: Alexandre Julliard julliard@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: