Hans Leidekker : setupapi: Add stub implementations of SetupUninstallOEMInfA/W.

Alexandre Julliard julliard at winehq.org
Wed May 13 10:19:43 CDT 2009


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed May 13 10:50:15 2009 +0200

setupapi: Add stub implementations of SetupUninstallOEMInfA/W.

---

 dlls/setupapi/misc.c        |   39 +++++++++++++++++++++++++++++++++++++++
 dlls/setupapi/setupapi.spec |    2 ++
 include/setupapi.h          |    3 +++
 3 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/dlls/setupapi/misc.c b/dlls/setupapi/misc.c
index 63320e6..36d52ba 100644
--- a/dlls/setupapi/misc.c
+++ b/dlls/setupapi/misc.c
@@ -1114,6 +1114,45 @@ BOOL WINAPI SetupCopyOEMInfW( PCWSTR source, PCWSTR location,
 }
 
 /***********************************************************************
+ *      SetupUninstallOEMInfA  (SETUPAPI.@)
+ */
+BOOL WINAPI SetupUninstallOEMInfA( PCSTR inf_file, DWORD flags, PVOID reserved )
+{
+    BOOL ret;
+    WCHAR *inf_fileW = NULL;
+
+    TRACE("%s, 0x%08x, %p\n", debugstr_a(inf_file), flags, reserved);
+
+    if (inf_file && !(inf_fileW = strdupAtoW( inf_file ))) return FALSE;
+    ret = SetupUninstallOEMInfW( inf_fileW, flags, reserved );
+    HeapFree( GetProcessHeap(), 0, inf_fileW );
+    return ret;
+}
+
+/***********************************************************************
+ *      SetupUninstallOEMInfW  (SETUPAPI.@)
+ */
+BOOL WINAPI SetupUninstallOEMInfW( PCWSTR inf_file, DWORD flags, PVOID reserved )
+{
+    static const WCHAR infW[] = {'\\','i','n','f','\\',0};
+    WCHAR target[MAX_PATH];
+
+    TRACE("%s, 0x%08x, %p\n", debugstr_w(inf_file), flags, reserved);
+
+    if (!GetWindowsDirectoryW( target, sizeof(target)/sizeof(WCHAR) )) return FALSE;
+
+    strcatW( target, infW );
+    strcatW( target, inf_file );
+
+    if (flags & SUOI_FORCEDELETE)
+        return DeleteFileW(target);
+
+    FIXME("not deleting %s\n", debugstr_w(target));
+
+    return TRUE;
+}
+
+/***********************************************************************
  *      InstallCatalog  (SETUPAPI.@)
  */
 DWORD WINAPI InstallCatalog( LPCSTR catalog, LPCSTR basename, LPSTR fullname )
diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec
index cd7bf62..d620399 100644
--- a/dlls/setupapi/setupapi.spec
+++ b/dlls/setupapi/setupapi.spec
@@ -526,6 +526,8 @@
 @ stdcall SetupSetSourceListW(long ptr long)
 @ stdcall SetupTermDefaultQueueCallback(ptr)
 @ stdcall SetupTerminateFileLog(long)
+@ stdcall SetupUninstallOEMInfA(str long ptr)
+@ stdcall SetupUninstallOEMInfW(wstr long ptr)
 @ stub ShouldDeviceBeExcluded
 @ stdcall StampFileSecurity(wstr ptr)
 @ stdcall StringTableAddString(ptr wstr long)
diff --git a/include/setupapi.h b/include/setupapi.h
index 009af29..c4e1664 100644
--- a/include/setupapi.h
+++ b/include/setupapi.h
@@ -1391,6 +1391,9 @@ typedef enum {
 /* SetupConfigureWmiFromInfSection Flags values */
 #define SCWMI_CLOBBER_SECURITY 0x00000001
 
+/* SetupUninstallOEMInf Flags values */
+#define SUOI_FORCEDELETE 0x00000001
+
 LONG     WINAPI AddTagToGroupOrderList(PCWSTR lpGroupName, DWORD dwUnknown2, DWORD dwUnknown3);
 DWORD    WINAPI CaptureAndConvertAnsiArg(PCSTR lpSrc, PWSTR *lpDst);
 DWORD    WINAPI CaptureStringArg(PCWSTR lpSrc, PWSTR *lpDst);




More information about the wine-cvs mailing list