Commit in reactos/lib/devmgr on MAIN
.cvsignore+8added 1.1
Makefile+45added 1.1
devmgr.c+55added 1.1
devmgr.def+25added 1.1
devmgr.edf+30added 1.1
devmgr.h+155added 1.1
devmgr.map.sbm[binary]added 1.1
devmgr.rc+42added 1.1
resource.h+8added 1.1
stubs.c+758added 1.1
resources/devmgr.ico[binary]added 1.1
+1126
11 added files
created stubs for devmgr.dll (based on lots of guesswork, trial&error and the very little resources on the www)

reactos/lib/devmgr
.cvsignore added at 1.1
diff -N .cvsignore
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .cvsignore	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,8 @@
+*.coff
+*.dll
+*.d
+*.a
+*.o
+*.sym
+*.map
+*.tmp

reactos/lib/devmgr
Makefile added at 1.1
diff -N Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Makefile	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,45 @@
+# $Id: Makefile,v 1.1 2004/04/04 21:49:15 weiden Exp $
+
+PATH_TO_TOP = ../..
+
+TARGET_TYPE = dynlink
+
+TARGET_NAME = devmgr
+
+TARGET_INSTALLDIR = system32
+
+TARGET_BASE = 0x72A90000
+
+TARGET_CFLAGS = \
+ -I./include \
+ -DUNICODE \
+ -D_UNICODE \
+ -D__REACTOS__ \
+ -Wall \
+ -Werror \
+ -fno-builtin
+
+TARGET_LFLAGS = -nostartfiles -nostdlib
+
+TARGET_SDKLIBS = ntdll.a kernel32.a advapi32.a user32.a
+
+TARGET_GCCLIBS = gcc
+
+TARGET_PCH = 
+
+TARGET_CLEAN = 
+
+TARGET_OBJECTS = devmgr.o stubs.o
+
+DEP_OBJECTS = $(TARGET_OBJECTS)
+
+include $(PATH_TO_TOP)/rules.mak
+
+include $(TOOLS_PATH)/helper.mk
+
+include $(TOOLS_PATH)/depend.mk
+
+%/TAGS:
+	etags -o $(@D)/TAGS $(@D)/\*.c
+
+etags: ./TAGS

reactos/lib/devmgr
devmgr.c added at 1.1
diff -N devmgr.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ devmgr.c	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,55 @@
+/*
+ *  ReactOS kernel
+ *  Copyright (C) 1998, 1999, 2000, 2001 ReactOS Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: devmgr.c,v 1.1 2004/04/04 21:49:15 weiden Exp $
+ *
+ * PROJECT:         ReactOS devmgr.dll
+ * FILE:            lib/devmgr/devmgr.c
+ * PURPOSE:         ReactOS Device Manager
+ * PROGRAMMER:      Thomas Weidenmueller (w3seek@users.sourceforge.net)
+ * UPDATE HISTORY:
+ *      04-04-2004  Created
+ */
+#include <windows.h>
+#include "devmgr.h"
+#include "resource.h"
+
+extern HINSTANCE hDllInstance;
+
+
+BOOL STDCALL
+DllMain(
+	HINSTANCE hinstDLL,
+	DWORD     dwReason,
+	LPVOID    lpvReserved)
+{
+  switch (dwReason)
+  {
+    case DLL_PROCESS_ATTACH:
+      hDllInstance = hinstDLL;
+      break;
+    case DLL_THREAD_ATTACH:
+      break;
+    case DLL_THREAD_DETACH:
+      break;
+    case DLL_PROCESS_DETACH:
+      break;
+  }
+  return TRUE;
+}
+

reactos/lib/devmgr
devmgr.def added at 1.1
diff -N devmgr.def
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ devmgr.def	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,25 @@
+LIBRARY devmgr.dll
+
+EXPORTS
+DeviceProperties_RunDLLA@16
+DeviceProperties_RunDLLW@16
+DevicePropertiesA@20
+DevicePropertiesW@20
+DeviceManager_ExecuteA@16
+DeviceManager_ExecuteW@16
+DeviceProblemTextA@20
+DeviceProblemTextW@20
+DeviceProblemWizardA@12
+DeviceProblemWizardW@12
+DeviceManagerPrintA@20
+DeviceManagerPrintW@20
+DeviceAdvancedPropertiesA@12
+DeviceAdvancedPropertiesW@12
+DeviceCreateHardwarePage@8
+DeviceCreateHardwarePageEx@16
+DevicePropertiesExA@20
+DevicePropertiesExW@20
+DeviceProblemWizard_RunDLLA@16
+DeviceProblemWizard_RunDLLW@16
+
+; EOF

reactos/lib/devmgr
devmgr.edf added at 1.1
diff -N devmgr.edf
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ devmgr.edf	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,30 @@
+LIBRARY devmgr.dll
+
+EXPORTS
+DeviceProperties_RunDLLA=DeviceProperties_RunDLLA@16
+DeviceProperties_RunDLLW=DeviceProperties_RunDLLW@16
+DevicePropertiesA=DevicePropertiesA@20
+DevicePropertiesW=DevicePropertiesW@20
+DeviceManager_ExecuteA=DeviceManager_ExecuteA@16
+DeviceManager_ExecuteW=DeviceManager_ExecuteW@16
+DeviceProblemTextA=DeviceProblemTextA@20
+DeviceProblemTextW=DeviceProblemTextW@20
+DeviceProblemWizardA=DeviceProblemWizardA@12
+DeviceProblemWizardW=DeviceProblemWizardW@12
+DeviceManagerPrintA=DeviceManagerPrintA@20
+DeviceManagerPrintW=DeviceManagerPrintW@20
+DeviceAdvancedPropertiesA=DeviceAdvancedPropertiesA@12
+DeviceAdvancedPropertiesW=DeviceAdvancedPropertiesW@12
+DeviceCreateHardwarePage=DeviceCreateHardwarePage@8
+DeviceCreateHardwarePageEx=DeviceCreateHardwarePageEx@16
+DevicePropertiesExA=DevicePropertiesExA@20
+DevicePropertiesExW=DevicePropertiesExW@20
+DeviceProblemWizard_RunDLLA=DeviceProblemWizard_RunDLLA@16
+DeviceProblemWizard_RunDLLW=DeviceProblemWizard_RunDLLW@16
+
+
+; Export these functions only for the sake of compatibility, they're obviously typos
+DeviceProblenWizard_RunDLLA=DeviceProblemWizard_RunDLLA@16
+DeviceProblenWizard_RunDLLW=DeviceProblemWizard_RunDLLW@16
+
+; EOF

reactos/lib/devmgr
devmgr.h added at 1.1
diff -N devmgr.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ devmgr.h	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,155 @@
+#ifndef __DEVMGR_H
+#define __DEVMGR_H
+
+HINSTANCE hDllInstance;
+
+WINBOOL
+WINAPI
+DeviceManager_ExecuteA(HWND hWndParent,
+                       HINSTANCE hInst,
+                       LPCSTR lpMachineName,
+                       int nCmdShow);
+
+WINBOOL
+WINAPI
+DeviceManager_ExecuteW(HWND hWndParent,
+                       HINSTANCE hInst,
+                       LPCWSTR lpMachineName,
+                       int nCmdShow);
+
+VOID
+WINAPI
+DeviceProperties_RunDLLA(HWND hWndParent,
+                         HINSTANCE hInst,
+                         LPCWSTR lpDeviceCmd,
+                         int nCmdShow);
+
+VOID
+WINAPI
+DeviceProperties_RunDLLW(HWND hWndParent,
+                         HINSTANCE hInst,
+                         LPCSTR lpDeviceCmd,
+                         int nCmdShow);
+
+int
+WINAPI
+DevicePropertiesA(HWND hWndParent,
+                  HINSTANCE hInst,
+                  LPCSTR lpMachineName,
+                  LPCSTR lpDeviceID,
+                  DWORD Unknown);
+
+int
+WINAPI
+DevicePropertiesW(HWND hWndParent,
+                  HINSTANCE hInst,
+                  LPCWSTR lpMachineName,
+                  LPCWSTR lpDeviceID,
+                  DWORD Unknown);
+
+UINT
+WINAPI
+DeviceProblemTextA(PVOID Unknown1,
+                   PVOID Unknown2,
+                   UINT uProblemId,
+                   LPSTR lpString,
+                   UINT uMaxString);
+
+UINT
+WINAPI
+DeviceProblemTextW(PVOID Unknown1,
+                   PVOID Unknown2,
+                   UINT uProblemId,
+                   LPWSTR lpString,
+                   UINT uMaxString);
+
+WINBOOL
+WINAPI
+DeviceProblemWizardA(HWND hWndParent,
+                     LPCSTR lpMachineName,
+                     LPCSTR lpDeviceID);
+
+
+WINBOOL
+WINAPI
+DeviceProblemWizardW(HWND hWndParent,
+                     LPCWSTR lpMachineName,
+                     LPCWSTR lpDeviceID);
+
+VOID
+WINAPI
+DeviceProblemWizard_RunDLLA(HWND hWndParent,
+                            HINSTANCE hInst,
+                            LPCSTR lpDeviceCmd,
+                            int nCmdShow);
+
+VOID
+WINAPI
+DeviceProblemWizard_RunDLLW(HWND hWndParent,
+                            HINSTANCE hInst,
+                            LPCWSTR lpDeviceCmd,
+                            int nCmdShow);
+
+#define DEV_PRINT_ABSTRACT	(0)
+#define DEV_PRINT_SELECTED	(1)
+#define DEV_PRINT_ALL	(2)
+
+WINBOOL
+WINAPI
+DeviceManagerPrintA(LPCSTR lpMachineName,
+                    LPCSTR lpPrinter,
+                    int nPrintMode,
+                    UINT uNumberOfGuids,
+                    LPGUID lpGuids);
+
+WINBOOL
+WINAPI
+DeviceManagerPrintW(LPCWSTR lpMachineName,
+                    LPCWSTR lpPrinter,
+                    int nPrintMode,
+                    UINT uNumberOfGuids,
+                    LPGUID lpGuids);
+
+int
+WINAPI
+DeviceAdvancedPropertiesA(HWND hWndParent,
+                          LPCSTR lpMachineName,
+                          LPCSTR lpDeviceID);
+
+int
+WINAPI
+DeviceAdvancedPropertiesW(HWND hWndParent,
+                          LPCWSTR lpMachineName,
+                          LPCWSTR lpDeviceID);
+
+HWND
+WINAPI
+DeviceCreateHardwarePage(HWND hWndParent,
+                         LPGUID lpGuid);
+
+HWND
+WINAPI
+DeviceCreateHardwarePageEx(HWND hWndParent,
+                           LPGUID lpGuids,
+                           UINT uNumberOfGuids,
+                           UINT Unknown);
+
+int
+WINAPI
+DevicePropertiesExA(HWND hWndParent,
+                    HINSTANCE hInst,
+                    LPCSTR lpMachineName,
+                    LPCSTR lpDeviceID,
+                    DWORD Unknown);
+
+int
+WINAPI
+DevicePropertiesExW(HWND hWndParent,
+                    HINSTANCE hInst,
+                    LPCWSTR lpMachineName,
+                    LPCWSTR lpDeviceID,
+                    DWORD Unknown);
+
+#endif /* __DEVMGR_H */
+
+/* EOF */

reactos/lib/devmgr
devmgr.rc added at 1.1
diff -N devmgr.rc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ devmgr.rc	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,42 @@
+#include <reactos/resource.h>
+#include <defines.h>
+#include "resource.h"
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+VS_VERSION_INFO VERSIONINFO
+	FILEVERSION	RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
+	PRODUCTVERSION	RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD	
+	FILEFLAGSMASK	0x3fL
+#ifdef _DEBUG
+	FILEFLAGS	0x1L
+#else
+	FILEFLAGS	0x0L
+#endif
+	FILEOS		0x40004L
+	FILETYPE	0x2L
+	FILESUBTYPE	0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName",	RES_STR_COMPANY_NAME
+            VALUE "FileDescription",	"ReactOS Device Manager\0"
+            VALUE "FileVersion",	RES_STR_FILE_VERSION
+            VALUE "InternalName",	"devmgr\0"
+            VALUE "LegalCopyright",	RES_STR_LEGAL_COPYRIGHT
+            VALUE "OriginalFilename",	"devmgr.dll\0"
+            VALUE "ProductName",	RES_STR_PRODUCT_NAME
+            VALUE "ProductVersion",	RES_STR_PRODUCT_VERSION
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+IDI_DEVMGR ICON "resources/devmgr.ico"
+
+

reactos/lib/devmgr
resource.h added at 1.1
diff -N resource.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ resource.h	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,8 @@
+#ifndef __DEVMGR_RESOURCE_H
+#define __DEVMGR_RESOURCE_H
+
+#define IDI_DEVMGR	100
+
+#endif /* __DEVMGR_RESOURCE_H */
+
+/* EOF */

reactos/lib/devmgr
stubs.c added at 1.1
diff -N stubs.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ stubs.c	4 Apr 2004 21:49:15 -0000	1.1
@@ -0,0 +1,758 @@
+/* $Id: stubs.c,v 1.1 2004/04/04 21:49:15 weiden Exp $
+ *
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS msgina.dll
+ * FILE:            lib/devmgr/stubs.c
+ * PURPOSE:         devmgr.dll stubs
+ * PROGRAMMER:      Thomas Weidenmueller (w3seek@users.sourceforge.net)
+ * NOTES:           If you implement a function, remove it from this file
+ *
+ *                  Some helpful resources:
+ *                    http://support.microsoft.com/default.aspx?scid=kb;%5BLN%5D;815320
+ *                    http://www.jsiinc.com/SUBO/tip7400/rh7482.htm
+ *                    http://www.jsiinc.com/SUBM/tip6400/rh6490.htm
+ *
+ * UPDATE HISTORY:
+ *      04-04-2004  Created
+ */
+#include <windows.h>
+#include "devmgr.h"
+
+#define UNIMPLEMENTED \
+  DbgPrint("DEVMGR:  %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__FILE__,__LINE__)
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceManager_ExecuteA
+ *
+ * DESCRIPTION
+ *   Starts the Device Manager
+ *
+ * ARGUMENTS
+ *   hWndParent:   Handle to the parent window
+ *   hInst:        Handle to the application instance
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   nCmdShow:      Specifies how the window should be shown
+ *
+ * RETURN VALUE
+ *   TRUE:  if no errors occured
+ *   FALSE: if the device manager could not be executed
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   - Win runs the device manager in a separate process, so hWndParent is somehow
+ *     obsolete.
+ *
+ * @unimplemented
+ */
+WINBOOL
+WINAPI
+DeviceManager_ExecuteA(HWND hWndParent,
+                       HINSTANCE hInst,
+                       LPCSTR lpMachineName,
+                       int nCmdShow)
+{
+  UNIMPLEMENTED;
+  return FALSE;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceManager_ExecuteW
+ *
+ * DESCRIPTION
+ *   Starts the Device Manager
+ *
+ * ARGUMENTS
+ *   hWndParent:   Handle to the parent window
+ *   hInst:        Handle to the application instance
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   nCmdShow:      Specifies how the window should be shown
+ *
+ * RETURN VALUE
+ *   TRUE:  if no errors occured
+ *   FALSE: if the device manager could not be executed
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   - Win runs the device manager in a separate process, so hWndParent is somehow
+ *     obsolete.
+ *
+ * @unimplemented
+ */
+WINBOOL
+WINAPI
+DeviceManager_ExecuteW(HWND hWndParent,
+                       HINSTANCE hInst,
+                       LPCWSTR lpMachineName,
+                       int nCmdShow)
+{
+  UNIMPLEMENTED;
+  return FALSE;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProperties_RunDLLA
+ *
+ * DESCRIPTION
+ *   Invokes the device properties dialog
+ *
+ * ARGUMENTS
+ *   hWndParent:  Handle to the parent window
+ *   hInst:       Handle to the application instance
+ *   lpDeviceCmd: A command that includes the DeviceID of the properties to be shown,
+ *                also see NOTEs
+ *   nCmdShow:    Specifies how the window should be shown
+ *
+ * RETURN VALUE
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   - lpDeviceCmd is a string in the form of "/MachineName MACHINE /DeviceID DEVICEPATH"
+ *     (/MachineName is optional). This function only parses this string and eventually
+ *     calls DeviceProperties().
+ *
+ * @unimplemented
+ */
+VOID
+WINAPI
+DeviceProperties_RunDLLA(HWND hWndParent,
+                         HINSTANCE hInst,
+                         LPCWSTR lpDeviceCmd,
+                         int nCmdShow)
+{
+  UNIMPLEMENTED;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProperties_RunDLLW
+ *
+ * DESCRIPTION
+ *   Invokes the device properties dialog
+ *
+ * ARGUMENTS
+ *   hWndParent:  Handle to the parent window
+ *   hInst:       Handle to the application instance
+ *   lpDeviceCmd: A command that includes the DeviceID of the properties to be shown,
+ *                also see NOTEs
+ *   nCmdShow:    Specifies how the window should be shown
+ *
+ * RETURN VALUE
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   - lpDeviceCmd is a string in the form of "/MachineName MACHINE /DeviceID DEVICEPATH"
+ *     (/MachineName is optional). This function only parses this string and eventually
+ *     calls DeviceProperties().
+ *
+ * @unimplemented
+ */
+VOID
+WINAPI
+DeviceProperties_RunDLLW(HWND hWndParent,
+                         HINSTANCE hInst,
+                         LPCSTR lpDeviceCmd,
+                         int nCmdShow)
+{
+  UNIMPLEMENTED;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DevicePropertiesA
+ *
+ * DESCRIPTION
+ *   Invokes the device properties dialog directly
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   hInst:         Handle to the application instance
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device whose properties are to be shown
+ *   Unknown:       Unknown parameter, see NOTEs
+ *
+ * RETURN VALUE
+ *   >=0: if no errors occured
+ *   -1:  if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   Unknown seems to be a BOOL, not sure what it does
+ *
+ * @unimplemented
+ */
+int
+WINAPI
+DevicePropertiesA(HWND hWndParent,
+                  HINSTANCE hInst,
+                  LPCSTR lpMachineName,
+                  LPCSTR lpDeviceID,
+                  DWORD Unknown)
+{
+  UNIMPLEMENTED;
+  return -1;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DevicePropertiesW
+ *
+ * DESCRIPTION
+ *   Invokes the device properties dialog directly
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   hInst:         Handle to the application instance
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device whose properties are to be shown
+ *   Unknown:       Unknown parameter, see NOTEs
+ *
+ * RETURN VALUE
+ *   >=0: if no errors occured
+ *   -1:  if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   Unknown seems to be a BOOL, not sure what it does
+ *
+ * @unimplemented
+ */
+int
+WINAPI
+DevicePropertiesW(HWND hWndParent,
+                  HINSTANCE hInst,
+                  LPCWSTR lpMachineName,
+                  LPCWSTR lpDeviceID,
+                  DWORD Unknown)
+{
+  UNIMPLEMENTED;
+  return -1;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProblemTextW
+ *
+ * DESCRIPTION
+ *   Gets the problem text from a problem number displayed in the properties dialog
+ *
+ * ARGUMENTS
+ *   Unknown1:   Unknown parameter
+ *   Unknown2:   Unknown parameter
+ *   uProblemId: Specifies the problem ID
+ *   lpString:   Pointer to a buffer where the string is to be copied to
+ *   uMaxString: Size of the buffer
+ *
+ * RETURN VALUE
+ *   The return value is the number of bytes copied into the string buffer.
+ *   It returns 0 if an error occured.
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+UINT
+WINAPI
+DeviceProblemTextA(PVOID Unknown1,
+                   PVOID Unknown2,
+                   UINT uProblemId,
+                   LPSTR lpString,
+                   UINT uMaxString)
+{
+  UNIMPLEMENTED;
+  return 0;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProblemTextW
+ *
+ * DESCRIPTION
+ *   Gets the problem text from a problem number displayed in the properties dialog
+ *
+ * ARGUMENTS
+ *   Unknown1:   Unknown parameter
+ *   Unknown2:   Unknown parameter
+ *   uProblemId: Specifies the problem ID
+ *   lpString:   Pointer to a buffer where the string is to be copied to
+ *   uMaxString: Size of the buffer
+ *
+ * RETURN VALUE
+ *   The return value is the number of bytes copied into the string buffer.
+ *   It returns 0 if an error occured.
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+UINT
+WINAPI
+DeviceProblemTextW(PVOID Unknown1,
+                   PVOID Unknown2,
+                   UINT uProblemId,
+                   LPWSTR lpString,
+                   UINT uMaxString)
+{
+  UNIMPLEMENTED;
+  return 0;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProblemWizardA
+ *
+ * DESCRIPTION
+ *   Calls the device problem wizard
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device, also see NOTEs
+ *
+ * RETURN VALUE
+ *   TRUE:  if no errors occured
+ *   FALSE: if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+WINBOOL
+WINAPI
+DeviceProblemWizardA(HWND hWndParent,
+                     LPCSTR lpMachineName,
+                     LPCSTR lpDeviceID)
+{
+  UNIMPLEMENTED;
+  return FALSE;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProblemWizardW
+ *
+ * DESCRIPTION
+ *   Calls the device problem wizard
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device, also see NOTEs
+ *
+ * RETURN VALUE
+ *   TRUE:  if no errors occured
+ *   FALSE: if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+WINBOOL
+WINAPI
+DeviceProblemWizardW(HWND hWndParent,
+                     LPCWSTR lpMachineName,
+                     LPCWSTR lpDeviceID)
+{
+  UNIMPLEMENTED;
+  return FALSE;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProblemWizard_RunDLLA
+ *
+ * DESCRIPTION
+ *   Calls the device problem wizard
+ *
+ * ARGUMENTS
+ *   hWndParent:  Handle to the parent window
+ *   hInst:       Handle to the application instance
+ *   lpDeviceCmd: A command that includes the DeviceID of the properties to be shown,
+ *                also see NOTEs
+ *   nCmdShow:    Specifies how the window should be shown
+ *
+ * RETURN VALUE
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   - Win XP exports this function as DeviceProblenWizard_RunDLLA, apparently it's
+ *     a typo so we additionally export an alias function
+ *   - lpDeviceCmd is a string in the form of "/MachineName MACHINE /DeviceID DEVICEPATH"
+ *     (/MachineName is optional). This function only parses this string and eventually
+ *     calls DeviceProperties().
+ *
+ * @unimplemented
+ */
+VOID
+WINAPI
+DeviceProblemWizard_RunDLLA(HWND hWndParent,
+                            HINSTANCE hInst,
+                            LPCSTR lpDeviceCmd,
+                            int nCmdShow)
+{
+  UNIMPLEMENTED;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceProblemWizard_RunDLLW
+ *
+ * DESCRIPTION
+ *   Calls the device problem wizard
+ *
+ * ARGUMENTS
+ *   hWndParent:  Handle to the parent window
+ *   hInst:       Handle to the application instance
+ *   lpDeviceCmd: A command that includes the DeviceID of the properties to be shown,
+ *                also see NOTEs
+ *   nCmdShow:    Specifies how the window should be shown
+ *
+ * RETURN VALUE
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   - Win XP exports this function as DeviceProblenWizard_RunDLLA, apparently it's
+ *     a typo so we additionally export an alias function
+ *   - lpDeviceCmd is a string in the form of "/MachineName MACHINE /DeviceID DEVICEPATH"
+ *     (/MachineName is optional). This function only parses this string and eventually
+ *     calls DeviceProperties().
+ *
+ * @unimplemented
+ */
+VOID
+WINAPI
+DeviceProblemWizard_RunDLLW(HWND hWndParent,
+                            HINSTANCE hInst,
+                            LPCWSTR lpDeviceCmd,
+                            int nCmdShow)
+{
+  UNIMPLEMENTED;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceManagerPrintA
+ *
+ * DESCRIPTION
+ *   Calls the device problem wizard
+ *
+ * ARGUMENTS
+ *   lpMachineName:  Machine Name, NULL is the local machine
+ *   lpPrinter:      Filename of the printer where it should be printed on
+ *   nPrintMode:     Specifies what kind of information is to be printed
+ *                     DEV_PRINT_ABSTRACT: Prints an abstract of system information, the parameters
+ *                                         uNumberOfGuids, Guids are ignored
+ *                     DEV_PRINT_SELECTED: Prints information about the devices listed in Guids
+ *                     DEV_PRINT_ALL:      Prints an abstract of system information and all
+ *                                         system devices
+ *   uNumberOfGuids: Numbers of guids in the Guids array, this parameter is ignored unless
+ *                   nPrintMode is DEV_PRINT_SELECTED
+ *   lpGuids:        Array of device guids, this parameter is ignored unless
+ *                   nPrintMode is DEV_PRINT_SELECTED
+ *
+ * RETURN VALUE
+ *   TRUE:  if no errors occured
+ *   FALSE: if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+WINBOOL
+WINAPI
+DeviceManagerPrintA(LPCSTR lpMachineName,
+                    LPCSTR lpPrinter,
+                    int nPrintMode,
+                    UINT uNumberOfGuids,
+                    LPGUID lpGuids)
+{
+  UNIMPLEMENTED;
+  return FALSE;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceManagerPrintW
+ *
+ * DESCRIPTION
+ *   Calls the device problem wizard
+ *
+ * ARGUMENTS
+ *   lpMachineName:  Machine Name, NULL is the local machine
+ *   lpPrinter:      Filename of the printer where it should be printed on
+ *   nPrintMode:     Specifies what kind of information is to be printed
+ *                     DEV_PRINT_ABSTRACT: Prints an abstract of system information, the parameters
+ *                                         uNumberOfGuids, Guids are ignored
+ *                     DEV_PRINT_SELECTED: Prints information about the devices listed in Guids
+ *                     DEV_PRINT_ALL:      Prints an abstract of system information and all
+ *                                         system devices
+ *   uNumberOfGuids: Numbers of guids in the Guids array, this parameter is ignored unless
+ *                   nPrintMode is DEV_PRINT_SELECTED
+ *   lpGuids:        Array of device guids, this parameter is ignored unless
+ *                   nPrintMode is DEV_PRINT_SELECTED
+ *
+ * RETURN VALUE
+ *   TRUE:  if no errors occured
+ *   FALSE: if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+WINBOOL
+WINAPI
+DeviceManagerPrintW(LPCWSTR lpMachineName,
+                    LPCWSTR lpPrinter,
+                    int nPrintMode,
+                    UINT uNumberOfGuids,
+                    LPGUID lpGuids)
+{
+  UNIMPLEMENTED;
+  return FALSE;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceAdvancedPropertiesA
+ *
+ * DESCRIPTION
+ *   Invokes the device properties dialog, this version may add some property pages
+ *   for some devices
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device whose properties are to be shown
+ *
+ * RETURN VALUE
+ *   -1: if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+int
+WINAPI
+DeviceAdvancedPropertiesA(HWND hWndParent,
+                          LPCSTR lpMachineName,
+                          LPCSTR lpDeviceID)
+{
+  UNIMPLEMENTED;
+  return -1;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceAdvancedPropertiesW
+ *
+ * DESCRIPTION
+ *   Invokes the device properties dialog, this version may add some property pages
+ *   for some devices
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device whose properties are to be shown
+ *
+ * RETURN VALUE
+ *   -1: if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+int
+WINAPI
+DeviceAdvancedPropertiesW(HWND hWndParent,
+                          LPCWSTR lpMachineName,
+                          LPCWSTR lpDeviceID)
+{
+  UNIMPLEMENTED;
+  return -1;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceCreateHardwarePage
+ *
+ * DESCRIPTION
+ *   Creates a hardware page
+ *
+ * ARGUMENTS
+ *   hWndParent: Handle to the parent window
+ *   lpGuid:     Guid of the device
+ *
+ * RETURN VALUE
+ *   Returns the handle of the hardware page window that has been created or
+ *   NULL if it failed.
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *
+ * @unimplemented
+ */
+HWND
+WINAPI
+DeviceCreateHardwarePage(HWND hWndParent,
+                         LPGUID lpGuid)
+{
+  UNIMPLEMENTED;
+  return NULL;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DeviceCreateHardwarePageEx
+ *
+ * DESCRIPTION
+ *   Creates a hardware page
+ *
+ * ARGUMENTS
+ *   hWndParent:     Handle to the parent window
+ *   lpGuids:        An array of guids of devices that are to be listed
+ *   uNumberOfGuids: Numbers of guids in the Guids array
+ *   Unknown:        Unknown parameter, see NOTEs
+ *
+ * RETURN VALUE
+ *   Returns the handle of the hardware page window that has been created or
+ *   NULL if it failed.
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   uUnknown seems to be some kind of flag how the entries should be displayed,
+ *   in Win it seems to be always 0x00000001
+ *
+ * @unimplemented
+ */
+HWND
+WINAPI
+DeviceCreateHardwarePageEx(HWND hWndParent,
+                           LPGUID lpGuids,
+                           UINT uNumberOfGuids,
+                           UINT Unknown)
+{
+  UNIMPLEMENTED;
+  return NULL;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DevicePropertiesExA
+ *
+ * DESCRIPTION
+ *   Invokes the extended device properties dialog
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   hInst:         Handle to the application instance
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device whose properties are to be shown
+ *   Unknown:       Unknown parameter, see NOTEs
+ *
+ * RETURN VALUE
+ *   >=0: if no errors occured
+ *   -1:  if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   Unknown seems to be a BOOL, not sure what it affects
+ *
+ * @unimplemented
+ */
+int
+WINAPI
+DevicePropertiesExA(HWND hWndParent,
+                    HINSTANCE hInst,
+                    LPCSTR lpMachineName,
+                    LPCSTR lpDeviceID,
+                    DWORD Unknown)
+{
+  UNIMPLEMENTED;
+  return -1;
+}
+
+
+/***************************************************************************
+ * NAME                                                         EXPORTED
+ *      DevicePropertiesExW
+ *
+ * DESCRIPTION
+ *   Invokes the extended device properties dialog
+ *
+ * ARGUMENTS
+ *   hWndParent:    Handle to the parent window
+ *   hInst:         Handle to the application instance
+ *   lpMachineName: Machine Name, NULL is the local machine
+ *   lpDeviceID:    Specifies the device whose properties are to be shown
+ *   Unknown:       Unknown parameter, see NOTEs
+ *
+ * RETURN VALUE
+ *   >=0: if no errors occured
+ *   -1:  if errors occured
+ *
+ * REVISIONS
+ *
+ * NOTE
+ *   Unknown seems to be a BOOL, not sure what it affects
+ *
+ * @unimplemented
+ */
+int
+WINAPI
+DevicePropertiesExW(HWND hWndParent,
+                    HINSTANCE hInst,
+                    LPCWSTR lpMachineName,
+                    LPCWSTR lpDeviceID,
+                    DWORD Unknown)
+{
+  UNIMPLEMENTED;
+  return -1;
+}
CVSspam 0.2.8