Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160/* * PROJECT: ReactOS Shell * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later) * PURPOSE: ReactOS Networking Configuration * COPYRIGHT: Copyright 2008 Johannes Anderwald (johannes.anderwald@reactos.org) */
#include "precomp.h"
HMODULE g_hModule = NULL;
HINSTANCE netshell_hInstance;
class CNetshellModule : public CComModule{public:};
BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_NetworkConnections, CNetworkConnections) OBJECT_ENTRY(CLSID_ConnectionManager, CNetConnectionManager) OBJECT_ENTRY(CLSID_LanConnectionUi, CNetConnectionPropertyUi) OBJECT_ENTRY(CLSID_ConnectionTray, CLanStatus)END_OBJECT_MAP()
CNetshellModule gModule;
HPROPSHEETPAGEInitializePropertySheetPage(LPWSTR resname, DLGPROC dlgproc, LPARAM lParam, LPWSTR szTitle){ PROPSHEETPAGEW ppage;
memset(&ppage, 0x0, sizeof(PROPSHEETPAGEW)); ppage.dwSize = sizeof(PROPSHEETPAGEW); ppage.dwFlags = PSP_DEFAULT; ppage.pszTemplate = resname; ppage.pfnDlgProc = dlgproc; ppage.lParam = lParam; ppage.hInstance = netshell_hInstance; if (szTitle) { ppage.dwFlags |= PSP_USETITLE; ppage.pszTitle = szTitle; } return CreatePropertySheetPageW(&ppage);}
extern "C"{
BOOLWINAPIDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad){ switch (fdwReason) { case DLL_PROCESS_ATTACH: netshell_hInstance = hinstDLL; DisableThreadLibraryCalls(netshell_hInstance); gModule.Init(ObjectMap, netshell_hInstance, NULL); break; default: break; }
return TRUE;}
HRESULTWINAPIDllCanUnloadNow(void){ return S_FALSE;}
STDAPIDllRegisterServer(void){ HRESULT hr;
hr = gModule.DllRegisterServer(FALSE); if (FAILED_UNEXPECTEDLY(hr)) return hr;
hr = gModule.UpdateRegistryFromResource(IDR_NETSHELL, TRUE, NULL); if (FAILED_UNEXPECTEDLY(hr)) return hr;
return S_OK;}
STDAPIDllUnregisterServer(void){ HRESULT hr;
hr = gModule.DllUnregisterServer(FALSE); if (FAILED_UNEXPECTEDLY(hr)) return hr;
hr = gModule.UpdateRegistryFromResource(IDR_NETSHELL, FALSE, NULL); if (FAILED_UNEXPECTEDLY(hr)) return hr;
return S_OK;}
STDAPIDllGetClassObject( REFCLSID rclsid, REFIID riid, LPVOID *ppv){ return gModule.DllGetClassObject(rclsid, riid, ppv);}
VOIDWINAPINcFreeNetconProperties(NETCON_PROPERTIES *pProps){ CoTaskMemFree(pProps->pszwName); CoTaskMemFree(pProps->pszwDeviceName); CoTaskMemFree(pProps);}
BOOLWINAPINcIsValidConnectionName(_In_ PCWSTR pszwName){ if (!pszwName) return FALSE;
BOOL nonSpace = FALSE; while (*pszwName) { switch(*(pszwName++)) { case L'\\': case L'/': case L':': case L'*': case L'\t': case L'?': case L'<': case L'>': case L'|': case L'\"': return FALSE; case L' ': break; default: nonSpace = TRUE; break; } } return nonSpace;}
} // extern "C"