1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 { 29 HKEY hkeyLogon; 30 HKEY hkeyWorkgroup; 31 DWORD dwResult = 0; 32 33 34 if ( ERROR_SUCCESS == RegOpenKeyEx( 35 HKEY_LOCAL_MACHINE, 36 TEXT("Network\\Logon"), 37 0, KEY_READ, &hkeyLogon ) ) 38 { 39 DWORD dwLogon = 0; 40 DWORD dwLogonSize = sizeof(dwLogon); 41 RegQueryValueEx( hkeyLogon, TEXT("LMLogon"), 0, NULL, (LPBYTE)&dwLogon, &dwLogonSize ); 42 RegCloseKey( hkeyLogon ); 43 44 if ( dwLogon ) 45 { 46 HKEY hkeyNetworkProvider; 47 48 if ( ERROR_SUCCESS == RegOpenKeyEx( 49 HKEY_LOCAL_MACHINE, 50 TEXT("SYSTEM\\CurrentControlSet\\Services\\MSNP32\\NetworkProvider"), 51 0, KEY_READ, &hkeyNetworkProvider ) ) 52 { 53 DWORD dwBufferSize = nSize; 54 LONG lResult = RegQueryValueEx( hkeyNetworkProvider, TEXT("AuthenticatingAgent"), 0, NULL, (LPBYTE)lpBuffer, &dwBufferSize ); 55 56 if ( ERROR_SUCCESS == lResult || ERROR_MORE_DATA == lResult ) 57 dwResult = dwBufferSize / sizeof(TCHAR); 58 59 RegCloseKey( hkeyNetworkProvider ); 60 } 61 } 62 } 63 else if ( ERROR_SUCCESS == RegOpenKeyEx( 64 HKEY_LOCAL_MACHINE, 65 TEXT("SYSTEM\\CurrentControlSet\\Services\\VxD\\VNETSUP"), 66 0, KEY_READ, &hkeyWorkgroup ) ) 67 { 68 DWORD dwBufferSize = nSize; 69 LONG lResult = RegQueryValueEx( hkeyWorkgroup, TEXT("Workgroup"), 0, NULL, (LPBYTE)lpBuffer, &dwBufferSize ); 70 71 if ( ERROR_SUCCESS == lResult || ERROR_MORE_DATA == lResult ) 72 dwResult = dwBufferSize / sizeof(TCHAR); 73 74 RegCloseKey( hkeyWorkgroup ); 75 } 76 77 78 return dwResult; 79 } 80