IVsSettingsReader Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bietet Lesezugriff auf Konfigurationsinformationen, die in der Visual Studio-Einstellungsdatei gespeichert sind.
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
- Attribute
Beispiele
Im folgenden Beispiel ist eine Implementierung von ImportSettings , die in drei Einstellungs Werte liest. Diese Methode verwendet einige der abgerufenen Werte, um zu bestimmen, wie ein anderer Wert abgerufen wird: die Größe des Eingabe Puffers pTrashBytes wird durch Abrufen des Werts von abgerufen, der lTrashLength zuvor abgerufen wurde.
Hinweis
Die bewährte Vorgehensweise beim Speichern von Puffern oder Zeichen folgen ist das Speichern der Größe des gespeicherten Puffers oder der gespeicherten Zeichenfolge sowie des Objekts selbst. Diese Größen Informationen sollten immer beim Abrufen des gespeicherten Puffers der Zeichenfolge verwendet werden, um Pufferüberläufe zu vermeiden.
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;
};
Hinweise
Diese Schnittstelle wird von der Umgebung implementiert.
Hinweise für Aufrufer
Rufen Sie die IVsSettingsReader -Schnittstelle auf, wenn Sie die gespeicherten Konfigurationsinformationen eines VSPackages aus der Visual Studio Einstellungsdatei abrufen.
Hinweise für Implementierer
Nur VSPackages, die ihre Unterstützung für den Visual Studio Einstellungs Mechanismus registriert haben, nutzen die- IVsSettingsReader Schnittstelle. Weitere Informationen zum Registrieren eines VSPackage, das den Visual Studio Einstellungs Mechanismus unterstützt, finden Sie unter Unterstützung für Benutzereinstellungen.
Wenn ein Einstellungs Import Vorgang aus der Funktion "Einstellungen importieren/exportieren " ausgewählt wurde, die im Menü Extras der IDE verfügbar ist, übergibt die Umgebung eine IVsSettingsReader Schnittstelle an die Import Methode der Einstellungen des VSPackages, die die-Schnittstelle zum Lesen von Konfigurationsdaten verwendet. Visual Studio SDKUnterstützt mehrere Import Methoden:
Bei Interop-assemblybasierten VSPackages ist die Import Methode die VSPackage-Implementierung der IVsUserSettings -Methode der Schnittstelle ImportSettings .
Bei den meisten verwalteten Paket Framework-basierten VSPackages ist die Import Methode die VSPackage-Implementierung der IProfileManager -Methode der Schnittstelle LoadSettingsFromXml .
Bei verwalteten Paket Framework-basierten VSPackages, die die DialogPage -Schnittstelle implementieren, ist die Import Methode die-Methode dieser Schnittstelle LoadSettingsFromXml .
Weitere Informationen zum Importieren von Einstellungen finden Sie unter Gewusst wie: Verwenden von Interopassemblys zum Importieren von Einstellungen oder Importieren von Einstellungen.
Methoden
| ReadCategoryVersion(Int32, Int32, Int32, Int32) |
Gibt den Wert eines kategorieversions-Objekts zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadFileVersion(Int32, Int32, Int32, Int32) |
Gibt den Wert eines Datei Versions Objekts zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadSettingAttribute(String, String, String) |
Gibt den Wert eines Attribut Objekts zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadSettingBoolean(String, Int32) |
Gibt den Wert eines booleschen Objekts zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadSettingBytes(String, Byte, Int32, Int32) |
Gibt die Werte eines Arrays zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadSettingLong(String, Int32) |
Gibt den Wert eines Long-Objekts zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadSettingString(String, String) |
Gibt den Wert eines Zeichen folgen Objekts zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadSettingXml(String, Object) |
Gibt den Wert eines XML-Objekts zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReadSettingXmlAsString(String, String) |
Gibt den Wert einer XML-Einstellung als Zeichen folgen Objekt zurück, das in der Visual Studio-Einstellungsdatei gespeichert ist. |
| ReportError(String, UInt32) |
Meldet den Fehler-Status des Einstellungsdatei-Lesevorgangs. |