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 下落点。有关自定义的更多信息,请参见下落点注册设置持久性支持
- pSettings
类型:Microsoft.VisualStudio.Shell.Interop.IVsSettingsWriter
[in] 环境提供的 IVsSettingsWriter 接口以提供对 Visual Studio 设置文件的 VSPackage 编写。
返回值
类型: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 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。
请参见
参考
Microsoft.VisualStudio.Shell.Interop 命名空间