IVsUserSettingsQuery 接口

允许 VSPackage 指示其设置是否需要保存。

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

语法

声明
<GuidAttribute("334E1F15-7D97-4231-81B0-998E4A960E69")> _
<InterfaceTypeAttribute()> _
Public Interface IVsUserSettingsQuery
[GuidAttribute("334E1F15-7D97-4231-81B0-998E4A960E69")]
[InterfaceTypeAttribute()]
public interface IVsUserSettingsQuery

IVsUserSettingsQuery 类型公开以下成员。

方法

  名称 说明
公共方法 NeedExport

页首

备注

实现者说明

实现,如果 VSPackage 需要控制其保存到 Visual Studio 设置文件中的设置。

调用方的说明

此接口,如果 VSPackage 需要控制其设置,储蓄只应实现。

例如, VSPackage 可能允许用户更改当前会话的设置,但是,仅更新存储信息,当用户单击 保存 按钮时。

如果 VSPackage 不实现此接口,其状态始终导出。

唯一 VSPackage 中支持多个自定义下落点 (设置类别)。因此, NeedExport 的实现必须检查已提供的自定义下落点的标识的 GUID 或设置类别参数,确定设置的一组特定是否需要保存。

例如,在下面的示例中, VSPackage 始终请求其命令栏状态保存,但是,仅请求约束状态保存其键,如果设置了标志。

示例

STDMETHOD(NeedExport)(WCHAR* pszCategoryGUID, BOOL *pfNeedExport)
{
    if (!pfNeedExport)
        return E_INVALIDARG;
    
    CLSID clsidCategory;
    HRESULT hr= S_OK;
    
    hr = CLSIDFromString(pszCategoryGUID, &clsidCategory);
    IfFailGo(hr);
    if (GUID_Profiles_CommandBars == clsidCategory) {
        *pfNeedExport = TRUE; //Always export Command Bar Configuration
    }else if (GUID_Profiles_KeyBindings == clsidCategory) {
        *pfNeedExport = FALSE; //By Default don't export key bindings
        if (m_fMake_Permanent)
            *pfNeedExport = TRUE; //Export if user wants current configuration saved.
    }else{
        hr = E_UNEXPECTED;
    }
 Error:
    return hr;
}

请参见

参考

Microsoft.VisualStudio.Shell.Interop 命名空间

IVsUserSettings

其他资源

保留的设置

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

Working with Settings