/** BEGIN COPYRIGHT BLOCK * 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; version 2 of the License. * * 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., 59 Temple * Place, Suite 330, Boston, MA 02111-1307 USA. * * In addition, as a special exception, Red Hat, Inc. gives You the additional * right to link the code of this Program with code not covered under the GNU * General Public License ("Non-GPL Code") and to distribute linked combinations * including the two, subject to the limitations in this paragraph. Non-GPL Code * permitted under this exception must only link to the code of this Program * through those well defined interfaces identified in the file named EXCEPTION * found in the source code files (the "Approved Interfaces"). The files of * Non-GPL Code may instantiate templates or use macros or inline functions from * the Approved Interfaces without causing the resulting work to be covered by * the GNU General Public License. Only Red Hat, Inc. may make changes or * additions to the list of Approved Interfaces. You must obey the GNU General * Public License in all respects for all of the Program code and other code used * in conjunction with the Program except the Non-GPL Code covered by this * exception. If you modify this file, you may extend this exception to your * version of the file, but you are not obligated to do so. If you do not wish to * provide this exception without modification, you must delete this exception * statement from your version and license this file solely under the GPL without * exception. * * * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission. * Copyright (C) 2005 Red Hat, Inc. * All rights reserved. * END COPYRIGHT BLOCK **/ #ifdef _WIN32 #include #include #include "ldap.h" int SlapdGetRegSZ( LPTSTR lpszRegKey, LPSTR lpszValueName, LPTSTR lpszValue ) { HKEY hKey; DWORD dwType, dwNumBytes; LONG lResult; /* Open the registry, get the required key handle. */ lResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE, lpszRegKey, 0L, KEY_QUERY_VALUE, &hKey ); if (lResult == ERROR_SUCCESS) { dwNumBytes = sizeof( DWORD ); lResult = RegQueryValueEx( hKey, lpszValueName, 0, &dwType, NULL, &dwNumBytes ); if( lResult == ERROR_SUCCESS ) { RegQueryValueEx( hKey, lpszValueName, 0, &dwType, (LPBYTE)lpszValue, &dwNumBytes ); *(lpszValue+dwNumBytes) = 0; /* Close the Registry. */ RegCloseKey(hKey); return 0; } else { /* No config file location stored in the Registry. */ RegCloseKey(hKey); return 1; } } else { return 1; } } /* SlapdGetRegSZ */ int SlapdSetRegSZ( LPTSTR lpszKey, LPSTR lpszValueName, LPTSTR lpszValue ) { HKEY hKey; LONG lResult; /* Open the registry, get a handle to the desired key. */ lResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE, lpszKey, 0, KEY_ALL_ACCESS, &hKey ); if (lResult == ERROR_SUCCESS) { /* Set the value to the value-name at the key location. */ RegSetValueEx( hKey, lpszValueName, 0, REG_SZ, (CONST BYTE*)lpszValue, strlen(lpszValue) ); /* Close the registry */ RegCloseKey(hKey); return 0; } else { return 1; } } /* SlapdSetRegSZ */ /* converts '/' chars to '\' */ void unixtodospath(char *szText) { if(szText) { while(*szText) { if( *szText == '/' ) *szText = '\\'; szText++; } } } /* converts '\' chars to '/' */ void dostounixpath(char *szText) { if(szText) { while(*szText) { if( *szText == '\\' ) *szText = '/'; szText++; } } } #endif /* _WIN32 */