IVsUserSettings.ExportSettings 方法

,当 导入/导出设置 功能的导出可在 IDE 的 工具 菜单由用户时,选择保存 VSPackage 中配置为使用 Visual Studio 设置结构。

命名空间:  Microsoft.VisualStudio.Shell.Interop
程序集:  Microsoft.VisualStudio.Shell.Interop.8.0(在 Microsoft.VisualStudio.Shell.Interop.8.0.dll 中)

语法

声明
Function ExportSettings ( _
    pszCategoryGUID As String, _
    pSettings As IVsSettingsWriter _
) As Integer
int ExportSettings(
    string pszCategoryGUID,
    IVsSettingsWriter pSettings
)

参数

  • pszCategoryGUID
    类型:System.String
    [in] 标识设置组的 GUID 将导出。这是自定义的标识的 GUID 下落点。有关自定义的更多信息,请参见下落点注册设置持久性支持

返回值

类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。

备注

唯一 VSPackage 中支持多个自定义下落点 (设置类别)。

因此, ExportSettings 的实现必须检查传递的类别 GUID,并选择保存的特殊的自定义指定的状态正确的结构下落点。

在下面的示例中, ExportSettings 调用仍存在的命令栏状态的不同的实现与仍存在的键绑定状态相关。

除了 ExportSettings的实现保存的数据, API 还会自动保存 Visual Studio 版本的设置使用导出配置信息。

示例

在此示例中, ExportSettings 的实现选择位于两个不同的导出方法取决于 pszCategoryGUID 参数。

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;
};

.NET Framework 安全性

请参见

参考

IVsUserSettings 接口

Microsoft.VisualStudio.Shell.Interop 命名空间

ImportSettings

IVsUserSettingsQuery

其他资源

保留的设置

如何:使用互操作程序集的导出设置

如何:使用互操作程序集导入设置

Working with Settings