initial implementation of DeviceAdvancedPropertiesA/W
Modified: trunk/reactos/lib/devmgr/devmgr.xml
Modified: trunk/reactos/lib/devmgr/hwpage.c
Modified: trunk/reactos/lib/devmgr/misc.c
Modified: trunk/reactos/lib/devmgr/precomp.h
Modified: trunk/reactos/lib/devmgr/stubs.c
_____
Modified: trunk/reactos/lib/devmgr/devmgr.xml
--- trunk/reactos/lib/devmgr/devmgr.xml 2005-11-26 03:21:41 UTC (rev
19603)
+++ trunk/reactos/lib/devmgr/devmgr.xml 2005-11-26 03:22:22 UTC (rev
19604)
@@ -13,6 +13,7 @@
<library>setupapi</library>
<library>user32</library>
<file>devmgr.rc</file>
+ <file>advprop.c</file>
<file>hwpage.c</file>
<file>misc.c</file>
<file>stubs.c</file>
_____
Modified: trunk/reactos/lib/devmgr/hwpage.c
--- trunk/reactos/lib/devmgr/hwpage.c 2005-11-26 03:21:41 UTC (rev
19603)
+++ trunk/reactos/lib/devmgr/hwpage.c 2005-11-26 03:22:22 UTC (rev
19604)
@@ -30,8 +30,6 @@
#define NDEBUG
#include <debug.h>
-typedef VOID (WINAPI *PINITCOMMONCONTROLS)(VOID);
-
typedef enum
{
HWPD_STANDARDLIST = 0,
@@ -978,7 +976,6 @@
IN HWPAGE_DISPLAYMODE DisplayMode)
{
PHARDWARE_PAGE_DATA hpd;
- PINITCOMMONCONTROLS pInitCommonControls;
/* allocate the HARDWARE_PAGE_DATA structure. Make sure it is
zeroed because the initialization code assumes that in
@@ -1006,21 +1003,12 @@
}
/* load comctl32.dll dynamically */
- hpd->hComCtl32 = LoadLibrary(TEXT("comctl32.dll"));
+ hpd->hComCtl32 = LoadAndInitComctl32();
if (hpd->hComCtl32 == NULL)
{
goto Cleanup;
}
- /* initialize the common controls */
- pInitCommonControls =
(PINITCOMMONCONTROLS)GetProcAddress(hpd->hComCtl32,
-
"InitCommonControls");
- if (pInitCommonControls == NULL)
- {
- goto Cleanup;
- }
- pInitCommonControls();
-
/* create the dialog */
hWnd = CreateDialogParam(hDllInstance,
MAKEINTRESOURCE(IDD_HARDWARE),
_____
Modified: trunk/reactos/lib/devmgr/misc.c
--- trunk/reactos/lib/devmgr/misc.c 2005-11-26 03:21:41 UTC (rev
19603)
+++ trunk/reactos/lib/devmgr/misc.c 2005-11-26 03:22:22 UTC (rev
19604)
@@ -149,6 +149,69 @@
return 0;
}
+LPWSTR
+ConvertMultiByteToUnicode(IN LPCSTR lpMultiByteStr,
+ IN UINT uCodePage)
+{
+ LPWSTR lpUnicodeStr;
+ INT nLength;
+
+ nLength = MultiByteToWideChar(uCodePage,
+ 0,
+ lpMultiByteStr,
+ -1,
+ NULL,
+ 0);
+ if (nLength == 0)
+ return NULL;
+
+ lpUnicodeStr = HeapAlloc(GetProcessHeap(),
+ 0,
+ nLength * sizeof(WCHAR));
+ if (lpUnicodeStr == NULL)
+ return NULL;
+
+ if (!MultiByteToWideChar(uCodePage,
+ 0,
+ lpMultiByteStr,
+ nLength,
+ lpUnicodeStr,
+ nLength))
+ {
+ HeapFree(GetProcessHeap(),
+ 0,
+ lpUnicodeStr);
+ return NULL;
+ }
+
+ return lpUnicodeStr;
+}
+
+HINSTANCE
+LoadAndInitComctl32(VOID)
+{
+ typedef VOID (WINAPI *PINITCOMMONCONTROLS)(VOID);
+ PINITCOMMONCONTROLS pInitCommonControls;
+ HINSTANCE hComCtl32;
+
+ hComCtl32 = LoadLibrary(L"comctl32.dll");
+ if (hComCtl32 != NULL)
+ {
+ /* initialize the common controls */
+ pInitCommonControls =
(PINITCOMMONCONTROLS)GetProcAddress(hComCtl32,
+
"InitCommonControls");
+ if (pInitCommonControls == NULL)
+ {
+ FreeLibrary(hComCtl32);
+ return NULL;
+ }
+
+ pInitCommonControls();
+ }
+
+ return hComCtl32;
+}
+
BOOL
STDCALL
DllMain(IN HINSTANCE hinstDLL,
_____
Modified: trunk/reactos/lib/devmgr/precomp.h
--- trunk/reactos/lib/devmgr/precomp.h 2005-11-26 03:21:41 UTC (rev
19603)
+++ trunk/reactos/lib/devmgr/precomp.h 2005-11-26 03:22:22 UTC (rev
19604)
@@ -191,6 +191,13 @@
LPARAM
ListViewGetSelectedItemData(IN HWND hwnd);
+LPWSTR
+ConvertMultiByteToUnicode(IN LPCSTR lpMultiByteStr,
+ IN UINT uCodePage);
+
+HINSTANCE
+LoadAndInitComctl32(VOID);
+
#endif /* __DEVMGR_H */
/* EOF */
_____
Modified: trunk/reactos/lib/devmgr/stubs.c
--- trunk/reactos/lib/devmgr/stubs.c 2005-11-26 03:21:41 UTC (rev
19603)
+++ trunk/reactos/lib/devmgr/stubs.c 2005-11-26 03:22:22 UTC (rev
19604)
@@ -548,72 +548,6 @@
/***********************************************************************
****
* 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
* DevicePropertiesExA
*
* DESCRIPTION