|
|
/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
bkprof.c
Abstract:
Profile routines for online books program
Author:
Ted Miller (tedm) 5-Jan-1995
Revision History:
--*/
#include "books.h"
//
// Registry key where profile values are stored.
//
PWSTR BooksProfileKeyName = L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Online Books";
//
// Name of profile value that stores the last known location
// of the online books helpfile. This value varies depending
// on the product (workstation/server) and is set in FixupNames().
//
PWSTR BooksProfileLocation;
PWSTR MyGetProfileValue( IN PWSTR ValueName, IN PWSTR DefaultValue )
/*++
Routine Description:
Retreive a profile value as a unicode string.
Arguments:
ValueName - supplies the name of the value to be retreived.
DefaultValue - supplies the default value, which is used if the given value cannot be retreived for any reason.
Return Value:
Pointer to the profile value. The caller can free this buffer with MyFree when done with it. Note that this routine always returns a valid pointer.
--*/
{ LONG l; DWORD Disposition; WCHAR Value[128]; HKEY hKey; DWORD DataType; DWORD DataSize;
//
// Create the key if it does not exist.
//
l = RegCreateKeyEx( HKEY_LOCAL_MACHINE, BooksProfileKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ, NULL, &hKey, &Disposition );
if(l == NO_ERROR) {
DataSize = sizeof(Value);
l = RegQueryValueEx( hKey, ValueName, NULL, &DataType, (LPBYTE)Value, &DataSize );
RegCloseKey(hKey);
if((l != NO_ERROR) || (DataType != REG_SZ)) { lstrcpy(Value,DefaultValue); }
} else { lstrcpy(Value,DefaultValue); }
return DupString(Value); }
BOOL MySetProfileValue( IN PWSTR ValueName, OUT PWSTR Value )
/*++
Routine Description:
Save a unicode string profile value.
Arguments:
ValueName - supplies the name of the value to be set.
Value - supplies the value to be set.
Return Value:
Boolean value indicating whether the operation succeeded.
--*/
{ LONG l; DWORD Disposition; HKEY hKey;
//
// Create the key if it does not exist.
//
l = RegCreateKeyEx( HKEY_LOCAL_MACHINE, BooksProfileKeyName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &Disposition );
if(l == NO_ERROR) {
l = RegSetValueEx( hKey, ValueName, 0, REG_SZ, (PBYTE)Value, (lstrlen(Value)+1)*sizeof(WCHAR) );
RegCloseKey(hKey); }
return(l == NO_ERROR); }
|