Compartilhar via


Método IVsUserSettings.ExportSettings (String, IVsSettingsWriter)

 

Publicado: abril de 2016

Salva a configuração do VSPackage usando o Visual Studio mecanismo de configurações quando a opção de exportação do configurações de importação/exportação recurso disponível no IDE do ferramentas menu é selecionado por um usuário.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop.8.0 (em Microsoft.VisualStudio.Shell.Interop.8.0.dll)

Sintaxe

int ExportSettings(
    string pszCategoryGUID,
    IVsSettingsWriter pSettings
)
int ExportSettings(
    String^ pszCategoryGUID,
    IVsSettingsWriter^ pSettings
)
abstract ExportSettings : 
        pszCategoryGUID:string *
        pSettings:IVsSettingsWriter -> int
Function ExportSettings (
    pszCategoryGUID As String,
    pSettings As IVsSettingsWriter
) As Integer

Parâmetros

  • pszCategoryGUID
    Type: System.String

    [in] GUID que identifica o grupo de configurações a serem exportados. Esse é o GUID de identificação para o ponto de configurações personalizadas. Para obter mais informações sobre pontos de configurações personalizadas, consulte suporte a persistência configurações de registro

Valor Retornado

Type: System.Int32

Se o método for bem-sucedido, ele retornará S_OK. Se ele falhar, ele retorna um código de erro.

Comentários

Um único VSPackage pode dar suporte a mais de um ponto de configurações personalizado (configurações de categoria).

Portanto, as implementações de ExportSettings deve verificar a categoria GUID passado e escolha o mecanismo correto para salvar o estado especificado pelo ponto de configurações personalizado específico.

No exemplo a seguir, ExportSettings chama uma implementação diferente para persistir estado da barra de comando em vez de persistir o estado de associação de chave.

Além de dados salvos pela implementação do ExportSettings, a API de configurações também salva automaticamente a versão do Visual Studio usado para exportar informações de configuração.

Exemplos

Neste exemplo, a implementação de ExportSettings escolhe entre dois métodos diferentes de exportação dependendo do pszCategoryGUID argumento.

STDMETHOD(ExportSettings)(WCHAR *pszCategoryGUID, IVsSettingsWriter *pSettings)
{
    CLSID clsidCategory;
    HRESULT hr;
    hr = CLSIDFromString(pszCategoryGUID, &clsidCategory);
    IfFailGo(hr);
    //Delegate to the right internal implementation based on the requested category

    if (GUID_Profiles_CommandBars == clsidCategory) {
        hr = ExportSettings_CommandBars(pSettings);
    }else if (GUID_Profiles_KeyBindings == clsidCategory) {
        hr = ExportSettings_KeyBindings(pSettings);
    }else{
        hr = E_UNEXPECTED;
    }
 Error:
    return hr;
};

HRESULT ExportSettings_CommandBars(IVsSettingsWriter *pSettings)
{
    if (!pSettings)
        return E_INVALIDARG;

    hr = pSettings->WriteSettingString(c_szFirstSettingName, L"Value1");
    IfFailGo(hr);

    int cRandomTrash = 12345;
    BYTE *pRandomTrash = (BYTE *)VSAlloc(cRandomTrash);
    if (pRandomTrash){
        hr = pSettings->WriteSettingBytes(c_szRandomTrashBytes, pRandomTrash, cRandomTrash);
        IfFailGo(hr);
        hr = pSettings->WriteSettingLong(c_szRandomTrashLength, cRandomTrash);
        IfFailGo(hr);
    }

 Error:
    return hr;
};

HRESULT ExportSettings_KeyBindings(IVsSettingsWriter *pSettings)
{
    if (!pSettings)
        return E_INVALIDARG;

    hr = pSettings->WriteSettingString(c_szBreakPointWindow, L"Ctrl + Alt + B");
    IfFailGo(hr);

 Error:
    return hr;
};

Confira Também

ImportSettings
IVsUserSettingsQuery
Interface IVsUserSettings
Namespace Microsoft.VisualStudio.Shell.Interop
Suporte para configurações de usuário
Como: exportar configurações usando Assemblies de interoperabilidade
Como: usar Assemblies de interoperabilidade para importar configurações
Working with Settings

Retornar ao início