/*++ Copyright (c) 1991-1993 Microsoft Corporation Module Name: Config.h Abstract: This header file defines the function prototypes of the temporary helper routines to get configuration information from the NT configuration files. Author: Rita Wong (ritaw) 22-May-1991 Environment: Only runs under NT. Notes: You must include the following before this file: windef.h OR windows.h // Win32 type definitions Revision History: 22-May-1991 RitaW Created. 27-Nov-1991 JohnRo Prepare for revised config handlers. Added revision history. 08-Jan-1992 JohnRo Added SECT_NT_REPLICATOR. 13-Feb-1992 JohnRo Moved section name equates to . Include and here instead of everywhere else. Added NetpDbgDisplayConfigSection(). Added NetpDeleteConfigKeyword() and NetpNumberOfConfigKeywords(). Added Netp{Get,Set}Config{Bool,Dword}. 14-Mar-1992 JohnRo Get rid of old config helper callers. 23-Mar-1992 JohnRo Get rid of old config helpers. 08-May-1992 JohnRo Add LPTSTR array routines. 08-Jul-1992 JohnRo RAID 10503: srv mgr: repl dialog doesn't come up. 25-Feb-1993 JohnRo RAID 12914: avoid double close and free mem in NetpCloseConfigData(). 07-Apr-1993 JohnRo RAID 5483: server manager: wrong path given in repl dialog. --*/ #ifndef CONFIG_H #define CONFIG_H #include // NET_API_STATUS. #include // LPDEBUG_STRING. #include // LPTSTR_ARRAY. // // Opaque pointer for net config handles. (The real structure is in ConfigP.h, // and should only be used by NetLib routines.) // typedef LPVOID LPNET_CONFIG_HANDLE; // // Note that the routines in this file only accept the SECT_NT_ versions. // See for more details. // // NetpOpenConfigData opens the Paramaters section of a given service. NET_API_STATUS NetpOpenConfigData( OUT LPNET_CONFIG_HANDLE *ConfigHandle, IN LPTSTR UncServerName OPTIONAL, IN LPTSTR SectionName, // Must be a SECT_NT_ name. IN BOOL ReadOnly ); // NetpOpenConfigDataEx opens any area of a given service. NET_API_STATUS NetpOpenConfigDataEx( OUT LPNET_CONFIG_HANDLE *ConfigHandle, IN LPTSTR UncServerName OPTIONAL, IN LPTSTR SectionName, // Must be a SECT_NT_ name. IN LPTSTR AreaUnderSection OPTIONAL, IN BOOL ReadOnly ); // NetpOpenConfigData opens the Paramaters section of a given service. NET_API_STATUS NetpOpenConfigDataWithPath( OUT LPNET_CONFIG_HANDLE *ConfigHandle, IN LPTSTR UncServerName OPTIONAL, IN LPTSTR SectionName, // Must be a SECT_NT_ name. IN BOOL ReadOnly ); // NetpOpenConfigDataEx opens any area of a given service. NET_API_STATUS NetpOpenConfigDataWithPathEx( OUT LPNET_CONFIG_HANDLE *ConfigHandle, IN LPTSTR UncServerName OPTIONAL, IN LPTSTR SectionName, // Must be a SECT_NT_ name. IN LPTSTR AreaUnderSection OPTIONAL, IN BOOL ReadOnly ); // Delete a keyword and its value. // Return NERR_CfgParamNotFound if the keyword isn't present. NET_API_STATUS NetpDeleteConfigKeyword ( IN LPNET_CONFIG_HANDLE ConfigHandle, IN LPTSTR Keyword ); NET_API_STATUS NetpExpandConfigString( IN LPCTSTR UncServerName OPTIONAL, IN LPCTSTR UnexpandedString, OUT LPTSTR * ValueBufferPtr // Must be freed by NetApiBufferFree(). ); // If NetpOpenConfigData fails, try calling NetpHandleConfigFailure to decide // what to do about it. NET_API_STATUS NetpHandleConfigFailure( IN LPDEBUG_STRING DebugName, // Name of routine. IN NET_API_STATUS ApiStatus, // NetpOpenConfigData's error code. IN LPTSTR ServerNameValue OPTIONAL, OUT LPBOOL TryDownlevel ); // Get a boolean value. Return ERROR_INVALID_DATA if value isn't boolean. // Return NERR_CfgParamNotFound if the keyword isn't present. NET_API_STATUS NetpGetConfigBool ( IN LPNET_CONFIG_HANDLE ConfigHandle, IN LPTSTR Keyword, IN BOOL DefaultValue, OUT LPBOOL ValueBuffer ); // Get an unsigned numeric value. Return ERROR_INVALID_DATA if value isn't // numeric. // Return NERR_CfgParamNotFound if the keyword isn't present. NET_API_STATUS NetpGetConfigDword ( IN LPNET_CONFIG_HANDLE ConfigHandle, IN LPTSTR Keyword, IN DWORD DefaultValue, OUT LPDWORD ValueBuffer ); // Return null-null array of strings. // Return NERR_CfgParamNotFound if the keyword isn't present. NET_API_STATUS NetpGetConfigTStrArray( IN LPNET_CONFIG_HANDLE ConfigHandle, IN LPTSTR Keyword, OUT LPTSTR_ARRAY * ValueBuffer // Must be freed by NetApiBufferFree(). ); // Return string value for a given keyword. // Return NERR_CfgParamNotFound if the keyword isn't present. NET_API_STATUS NetpGetConfigValue ( IN LPNET_CONFIG_HANDLE ConfigHandle, IN LPTSTR Keyword, OUT LPTSTR * ValueBuffer // Must be freed by NetApiBufferFree(). ); NET_API_STATUS NetpEnumConfigSectionValues( IN LPNET_CONFIG_HANDLE ConfigHandle, OUT LPTSTR * KeywordBuffer, // Must be freed by NetApiBufferFree(). OUT LPTSTR * ValueBuffer, // Must be freed by NetApiBufferFree(). IN BOOL FirstTime ); NET_API_STATUS NetpNumberOfConfigKeywords ( IN LPNET_CONFIG_HANDLE ConfigHandle, OUT LPDWORD Count ); NET_API_STATUS NetpSetConfigValue( IN LPNET_CONFIG_HANDLE ConfigHandle, IN LPTSTR Keyword, IN LPTSTR Value ); NET_API_STATUS NetpCloseConfigData( IN OUT LPNET_CONFIG_HANDLE ConfigHandle ); #endif // ndef CONFIG_H