REGUTIL.C
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- //THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- //ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- //THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- // PARTICULAR PURPOSE.
- //
- // Copyright 1994-1997 Microsoft Corporation. All Rights Reserved.
- //
- // FILE:
- // REGUTIL.C
- //
- // PURPOSE:
- // Registry access functions.
- //
- // PLATFORMS:
- // Windows 95, Windows NT
- //
- // SPECIAL INSTRUCTIONS: N/A
- //
- // Windows Header Files:
- #pragma warning(disable:4001) // Single-line comment warnings
- #pragma warning(disable:4115) // Named type definition in parentheses
- #pragma warning(disable:4201) // Nameless struct/union warning
- #pragma warning(disable:4214) // Bit field types other than int warnings
- #pragma warning(disable:4514) // Unreferenced inline function has been removed
- // Windows Header Files:
- #include <Windows.h>
- #include <WindowsX.h>
- // Restore the warnings--leave the single-line comment warning OFF
- #pragma warning(default:4115) // Named type definition in parentheses
- #pragma warning(default:4201) // Nameless struct/union warning
- #pragma warning(default:4214) // Bit field types other than int warnings
- // C RunTime Header Files
- // Local Header Files
- // local definitions
- // default settings
- // external functions
- // external data
- // public data
- // private data
- // public functions
- //////////////////////////////////////////////////////////////////////////
- // Function: GetRegistryString
- //
- // Description:
- // Retrieves the string associated with the specified key in the registry.
- //
- // Parameters:
- // @@@
- //
- // Returns:
- // LPTSTR Pointer to registry string. NULL upon failure.
- //
- // Comments:
- //
- //
- //////////////////////////////////////////////////////////////////////////
- LPTSTR GetRegistryString(HKEY hKeyClass, LPTSTR lpszSubKey, LPTSTR lpszValueName)
- {
- // Local variables
- HKEY hKey; // Registry key
- LPTSTR lpszKeyValue; // Buffer for key name
- DWORD dwKeySize; // Size of key value
- DWORD dwKeyDataType; // Type of data stored in key
- LONG lRC; // Return code
- // Initialize variables
- dwKeyDataType = 0;
- dwKeySize = 0;
- hKey = NULL;
- lRC = RegOpenKey(hKeyClass, lpszSubKey, &hKey);
- if (lRC != ERROR_SUCCESS)
- {
- return(NULL);
- }
- // Got key, get value. First, get the size of the key.
- lRC = RegQueryValueEx(hKey, lpszValueName, NULL, NULL, NULL, &dwKeySize);
- if (lRC != ERROR_SUCCESS)
- {
- return(NULL);
- }
- if (dwKeySize <= 1) // Registry will return "" if no printers installed
- {
- return(NULL);
- }
- lpszKeyValue = GlobalAlloc(GPTR, (++dwKeySize));
- if (lpszKeyValue == NULL)
- {
- return(NULL);
- }
- lRC = RegQueryValueEx(hKey, lpszValueName, NULL, &dwKeyDataType, (LPBYTE)lpszKeyValue, &dwKeySize);
- return(lpszKeyValue);
- } // End of function GetRegistryString