[1/2] setupapi: implement SetupPromptForDiskA by wrapping around W version (try 3)
Ricardo Filipe
ricardojdfilipe at gmail.com
Tue Mar 3 12:38:30 CST 2009
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20090303/8267d29f/attachment.html>
-------------- next part --------------
From f9421298228479bcc15048c81d061b61d45ea31c Mon Sep 17 00:00:00 2001
From: Ricardo Filipe <ricardo_barbano at hotmail.com>
Date: Mon, 2 Mar 2009 16:21:28 +0000
Subject: setupapi: implement SetupPromptForDiskA by wrapping around W version
---
dlls/setupapi/dialog.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
dlls/setupapi/stubs.c | 14 --------------
2 files changed, 45 insertions(+), 14 deletions(-)
diff --git a/dlls/setupapi/dialog.c b/dlls/setupapi/dialog.c
index aaa9453..8afcc75 100644
--- a/dlls/setupapi/dialog.c
+++ b/dlls/setupapi/dialog.c
@@ -183,6 +183,51 @@ static INT_PTR CALLBACK promptdisk_proc(HWND hwnd, UINT msg, WPARAM wParam, LPAR
}
/***********************************************************************
+ * SetupPromptForDiskA (SETUPAPI.@)
+ */
+UINT WINAPI SetupPromptForDiskA(HWND hwndParent, PCSTR DialogTitle, PCSTR DiskName,
+ PCSTR PathToSource, PCSTR FileSought, PCSTR TagFile, DWORD DiskPromptStyle,
+ PSTR PathBuffer, DWORD PathBufferSize, PDWORD PathRequiredSize)
+{
+ WCHAR *DialogTitleW, *DiskNameW, *PathToSourceW;
+ WCHAR *FileSoughtW, *TagFileW, PathBufferW[MAX_PATH];
+ UINT ret, length;
+
+ TRACE("%p, %s, %s, %s, %s, %s, 0x%08x, %p, %d, %p\n", hwndParent, debugstr_a(DialogTitle),
+ debugstr_a(DiskName), debugstr_a(PathToSource), debugstr_a(FileSought),
+ debugstr_a(TagFile), DiskPromptStyle, PathBuffer, PathBufferSize,
+ PathRequiredSize);
+
+ DialogTitleW = strdupAtoW(DialogTitle);
+ DiskNameW = strdupAtoW(DiskName);
+ PathToSourceW = strdupAtoW(PathToSource);
+ FileSoughtW = strdupAtoW(FileSought);
+ TagFileW = strdupAtoW(TagFile);
+
+ ret = SetupPromptForDiskW(hwndParent, DialogTitleW, DiskNameW, PathToSourceW,
+ FileSoughtW, TagFileW, DiskPromptStyle, PathBufferW, MAX_PATH, PathRequiredSize);
+
+ HeapFree(GetProcessHeap(), 0, DialogTitleW);
+ HeapFree(GetProcessHeap(), 0, DiskNameW);
+ HeapFree(GetProcessHeap(), 0, PathToSourceW);
+ HeapFree(GetProcessHeap(), 0, FileSoughtW);
+ HeapFree(GetProcessHeap(), 0, TagFileW);
+
+ if(ret == DPROMPT_SUCCESS)
+ {
+ length = WideCharToMultiByte(CP_ACP, 0, PathBufferW, -1, NULL, 0, NULL, NULL);
+ if(PathRequiredSize) *PathRequiredSize = length;
+ if(PathBuffer)
+ {
+ if(length > PathBufferSize)
+ return DPROMPT_BUFFERTOOSMALL;
+ WideCharToMultiByte(CP_ACP, 0, PathBufferW, -1, PathBuffer, length, NULL, NULL);
+ }
+ }
+ return ret;
+}
+
+/***********************************************************************
* SetupPromptForDiskW (SETUPAPI.@)
*/
UINT WINAPI SetupPromptForDiskW(HWND hwndParent, PCWSTR DialogTitle, PCWSTR DiskName,
diff --git a/dlls/setupapi/stubs.c b/dlls/setupapi/stubs.c
index 287cb7e..3997447 100644
--- a/dlls/setupapi/stubs.c
+++ b/dlls/setupapi/stubs.c
@@ -247,20 +247,6 @@ BOOL WINAPI SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA ClassImageListData)
}
/***********************************************************************
- * SetupPromptForDiskA (SETUPAPI.@)
- */
-UINT WINAPI SetupPromptForDiskA(HWND hwndParent, PCSTR DialogTitle, PCSTR DiskName,
- PCSTR PathToSource, PCSTR FileSought, PCSTR TagFile, DWORD DiskPromptStyle,
- PSTR PathBuffer, DWORD PathBufferSize, PDWORD PathRequiredSize)
-{
- FIXME("%p %s %s %s %s %s %d %p %d %p: stub\n", hwndParent, debugstr_a(DialogTitle),
- debugstr_a(DiskName), debugstr_a(PathToSource), debugstr_a(FileSought),
- debugstr_a(TagFile), DiskPromptStyle, PathBuffer, PathBufferSize,
- PathRequiredSize);
- return 0;
-}
-
-/***********************************************************************
* CM_Locate_DevNodeA (SETUPAPI.@)
*/
CONFIGRET WINAPI CM_Locate_DevNodeA(PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags)
--
1.5.6.3
More information about the wine-patches
mailing list