IVsSettingsReader Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет доступ для чтения к сведениям о конфигурации, хранящимся в файле параметров Visual Studio.
public interface class IVsSettingsReader
public interface class IVsSettingsReader
__interface IVsSettingsReader
[System.Runtime.InteropServices.Guid("38C38501-1428-4ABB-8B27-2F0E1E6DD757")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IVsSettingsReader
[<System.Runtime.InteropServices.Guid("38C38501-1428-4ABB-8B27-2F0E1E6DD757")>]
[<System.Runtime.InteropServices.InterfaceType(1)>]
type IVsSettingsReader = interface
Public Interface IVsSettingsReader
- Атрибуты
Примеры
В приведенном ниже примере является реализацией объекта ImportSettings , который считывает три значения параметров. Этот метод использует некоторые извлеченные значения для определения способа получения другого значения: размер входного буфера pTrashBytes определяется путем извлечения значения, lTrashLength полученного ранее.
Примечание
При хранении буферов или строк рекомендуется сохранить размер хранимого буфера или строки, а также сам объект. Эти сведения о размере всегда следует использовать при получении сохраненного буфера строки, чтобы избежать переполнения буфера.
HRESULT ImportSettings_CommandBars(IVsSettingsReader *pSettings, UserSettingsFlags flags, BOOL *pfRestartRequired)
{
if (!pSettings)
return E_INVALIDARG;
if (pfRestartRequired)
{
*pfRestartRequired = FALSE; //Nobody should require a restart!!
}
CComBSTR bstrFirstSettingName;
long lTrashLength = 0;
BYTE *pTrashBytes = NULL;
//Determines whether we can treat import as an additive operation, or a reset all settings operation
BOOL fResetCompletely = FALSE;
if (flags & USF_ResetOnImport)
fResetCompletely = TRUE;
hr = pSettings->ReadSettingString(c_szFirstSettingName, &bstrFirstSettingName);
IfFailGo(hr);
hr = pSettings->ReadSettingLong(c_szRandomTrashLength, &lTrashLength);
IfFailGo(hr);
if (lTrashLength > 0)
{
pTrashBytes = (BYTE*)VSAlloc(lTrashLength);
IfNullMemGo(pTrashBytes);
long lDataRead = 0;
hr = pSettings->ReadSettingBytes(c_szRandomTrashLength, pTrashBytes, &lDataRead, lTrashLength);
IfFailGo(hr);
if (lDataRead != lTrashLength)
{
hr = E_UNEXPECTED;
goto Error;
}
}
//Note: before returning these settings should immediately be applied to your personal
// settings store, whether in the registry or the file system.
//This write-through cache methodology is essential to allow us to work in multi-instance IDE scenarios.
hr = UpdateState_CommandBar(bstrFirstSettingName,lTrashLength,pTrashBytes,lDataRead);
Error:
return hr;
};
Комментарии
Этот интерфейс реализуется средой.
Примечания для вызывающих объектов
Вызовите IVsSettingsReader интерфейс при получении сведений о сохраненной конфигурации VSPackage из Visual Studio файла параметров.
Примечания для разработчиков
Только пакеты VSPackage, которые зарегистрировали поддержку Visual Studio механизма параметров, используют IVsSettingsReader интерфейс. Дополнительные сведения о регистрации пакета VSPackage, поддерживающего Visual Studio механизм параметров, см. в разделе Поддержка параметров пользователя.
При выборе операции импорта параметров из функции импорта и экспорта , доступной в меню средств интегрированной среды разработки, среда передает IVsSettingsReader интерфейс методу импорта параметров VSPackage, который использует интерфейс для чтения данных конфигурации. SDK для Visual StudioПоддерживает несколько методов импорта:
Для пакетов VSPackage на основе сборки взаимодействия метод импорта является реализацией IVsUserSettings интерфейса VSPackage ImportSettings .
Для большинства пакетов VSPackage, основанных на управляемых пакетах, метод импорта является реализацией IProfileManager интерфейса VSPackage LoadSettingsFromXml .
Для управляемых пакетов VSPackage на основе платформы пакета DialogPage , реализующих интерфейс, метод импорта — это LoadSettingsFromXml метод интерфейса.
Дополнительные сведения об импорте параметров см. в разделе как использовать сборки взаимодействия для импорта параметров или импорта параметров.
Методы
| ReadCategoryVersion(Int32, Int32, Int32, Int32) |
Возвращает значение объекта категории Version, хранящегося в файле параметров Visual Studio. |
| ReadFileVersion(Int32, Int32, Int32, Int32) |
Возвращает значение объекта версии файла, хранящегося в файле параметров Visual Studio. |
| ReadSettingAttribute(String, String, String) |
Возвращает значение объекта атрибута, хранящегося в файле параметров Visual Studio. |
| ReadSettingBoolean(String, Int32) |
Возвращает значение логического объекта, хранящегося в файле параметров Visual Studio. |
| ReadSettingBytes(String, Byte, Int32, Int32) |
Возвращает значения массива, хранящегося в файле параметров Visual Studio. |
| ReadSettingLong(String, Int32) |
Возвращает значение длинного объекта, хранящегося в файле параметров Visual Studio. |
| ReadSettingString(String, String) |
Возвращает значение строкового объекта, хранящегося в файле параметров Visual Studio. |
| ReadSettingXml(String, Object) |
Возвращает значение XML-объекта, хранящегося в файле параметров Visual Studio. |
| ReadSettingXmlAsString(String, String) |
Возвращает значение параметра XML в виде строкового объекта, хранящегося в файле параметров Visual Studio. |
| ReportError(String, UInt32) |
Сообщает статус ошибки операции чтения файла параметров. |