diff --git a/reactos/dll/win32/devmgr_new/CMakeLists.txt b/reactos/dll/win32/devmgr_new/CMakeLists.txt index d3e20c42b52..b4047338469 100644 --- a/reactos/dll/win32/devmgr_new/CMakeLists.txt +++ b/reactos/dll/win32/devmgr_new/CMakeLists.txt @@ -21,8 +21,7 @@ list(APPEND SOURCE devmgmt/DeviceView.cpp devmgmt/MainWindow.cpp devmgmt/Node.cpp - devmgmt/RootNode.cpp - ${CMAKE_CURRENT_BINARY_DIR}/devmgr_stubs.c) + devmgmt/RootNode.cpp) add_library(devmgr SHARED ${SOURCE} diff --git a/reactos/dll/win32/devmgr_new/api.cpp b/reactos/dll/win32/devmgr_new/api.cpp index 8850777c5a3..a68a1171a1b 100644 --- a/reactos/dll/win32/devmgr_new/api.cpp +++ b/reactos/dll/win32/devmgr_new/api.cpp @@ -19,7 +19,9 @@ #include "stdafx.h" #include "devmgmt\MainWindow.h" -#define UNIMPLEMENTED +HINSTANCE hDllInstance = NULL; + +WINE_DEFAULT_DEBUG_CHANNEL(devmgr); /*************************************************************************** @@ -91,8 +93,8 @@ DeviceManager_ExecuteW(HWND hWndParent, LPCWSTR lpMachineName, int nCmdShow) { - // - // This needs to create the mmc process which will load the device manager in-proc + // FIXME: Call mmc with devmgmt.msc + CDeviceManager DevMgr; return DevMgr.Create(hWndParent, hInst, lpMachineName, nCmdShow); } @@ -260,3 +262,48 @@ DeviceManagerPrintW(LPCWSTR lpMachineName, UNIMPLEMENTED; return FALSE; } + + +BOOL +WINAPI +DllMain(IN HINSTANCE hinstDLL, +IN DWORD dwReason, +IN LPVOID lpvReserved) +{ + switch (dwReason) + { + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hinstDLL); + hDllInstance = hinstDLL; + break; + } + + return TRUE; +} + +class CDevMgrUIModule : public CComModule +{ +public: +}; + +CDevMgrUIModule gModule; + +STDAPI DllCanUnloadNow() +{ + return gModule.DllCanUnloadNow(); +} + +STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) +{ + return gModule.DllGetClassObject(rclsid, riid, ppv); +} + +STDAPI DllRegisterServer() +{ + return gModule.DllRegisterServer(FALSE); +} + +STDAPI DllUnregisterServer() +{ + return gModule.DllUnregisterServer(FALSE); +} \ No newline at end of file diff --git a/reactos/dll/win32/devmgr_new/properties/misc.cpp b/reactos/dll/win32/devmgr_new/properties/misc.cpp index 74e47474c26..4316e7e5fef 100644 --- a/reactos/dll/win32/devmgr_new/properties/misc.cpp +++ b/reactos/dll/win32/devmgr_new/properties/misc.cpp @@ -30,7 +30,7 @@ #include "properties.h" #include "resource.h" -HINSTANCE hDllInstance = NULL; + INT LengthOfStrResource(IN HINSTANCE hInst, @@ -1129,21 +1129,3 @@ LoadAndInitComctl32(VOID) return hComCtl32; } - - -BOOL -WINAPI -DllMain(IN HINSTANCE hinstDLL, - IN DWORD dwReason, - IN LPVOID lpvReserved) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(hinstDLL); - hDllInstance = hinstDLL; - break; - } - - return TRUE; -}