快速归档对话框框接口 (OneNote 2013)

本主题介绍可用于以编程方式自定义OneNote 2013中的快速归档对话框的接口。

“快速归档”对话框

OneNote 2013中的快速归档对话框是一个可自定义的对话框,允许用户选择 OneNote 层次结构内的位置。 可选位置包括笔记本、 节组、 节、 页和子页。 对话框中使用的 OneNote 应用程序内部和外部应用程序通过OneNote 2013 API。 图 1 显示在其默认状态的快速归档对话框。

图 1. 没有自定义的“快速归档”对话框

不带自定义项的“快速提交

在对话框中,用户可以导航要查找特定位置,或通过在文本框中键入搜索 OneNote 树状结构中的所有笔记本层次结构。 可以自定义的对话框中的方面包括标题、 说明、 最近的结果列表、 复选框文本和状态、 树深度、 按钮和可选位置类型。

您可以通过两个OneNote 2013接口访问快速归档对话框功能。 IQuickFilingDialog界面允许用户实例化,设置,并运行对话框。 关闭对话框后,调用 IQuickFilingDialogCallback接口。 在 OneNote 过程中,运行对话框中,因此保持运行对话框的线程所需的一种机制,然后关闭时捕获用户的选择和对话框中的状态。

IQuickFilingDialog 接口

此接口允许用户自定义和运行对话框。 用户可以通过使用 Application.QuickFilingDialog方法实例化一个对话框,通过 Application类。 该方法返回对话框的实例。 一旦设置对话框中的属性, IQuickFilingDialog.Run方法用于运行对话框。 此方法在新的线程上运行的对话框。

属性

Name 类型 说明
Title
string
获取或设置对话框窗口的标题栏中显示的标题文本。
Description
string
获取或设置以指示要选择的内容有关用户的文本说明。 此值可以是多行文本。
CheckboxText
string
获取或设置如下所示的复选框的文本。 如果此值设置为非空字符串,在对话框中将显示一个复选框。 如果值为空字符串,将显示没有复选框。
CheckboxState
bool
获取或设置状态的复选框。 如果值设置为 false,启动的对话框时,将清除复选框。 如果值设置为 true,复选框处于选中状态,当对话框中启动时,只要 CheckboxText是一个非空字符串。
WindowHandle
ulong
获取快速归档对话框窗口的句柄 ID。
TreeDepth
HierarchyElement
获取或设置 OneNote 树应显示在所有笔记本节的深度。 默认情况下,最多为各节显示的树。 此属性不会影响可选择哪种类型的元素。 如果 TreeDepth设置为一个元素中的 OneNote 层次结构不是可由任何按钮选择较低,显示的树深度将最低可能可选元素。 也就是说,如果树深度设置为显示下页,但的最低的可选元素是部分,部分下显示的树。
ParentWindowHandle
ulong
获取或设置对话框中的父窗口的句柄 ID。 如果设置此属性,快速归档对话框中将在分配的父窗口模式时打开的对话框。 即,用户将无法访问父窗口,直到关闭快速归档对话框。
Position
tagPOINT
获取或设置与屏幕窗口的位置。 默认情况下,在父窗口或桌面的中间显示对话框。
SelectedItem
string
获取 OneNote 位置时关闭对话框,用户选择的对象 ID。 如果用户单击 取消按钮,该对象将设置为 null。
PressedButton
ulong
获取时关闭对话框中单击了哪个按钮。 如果单击 取消按钮,此属性返回值-1。 所有其他按钮分配整数值从 0 增加 1 添加到对话框中的每个按钮。 默认值 确定按钮的整数值为 0。

方法

SetRecentResults

说明
说明
设置哪些最近的结果列表将显示在快速归档对话框中,并指示是否在列表中包括一些特殊归档位置。 用户可以选择RecentResultType枚举中的最新的结果列表。 用户还可以选择以下选项添加到列表: 当前节、 当前页或未归档笔记。 如果 RecentResultType.rrtNone处于选中状态,将不显示任何新的结果列表。
语法
HRESULT SetRecentResults (
[in]RecentResultType recentResults,
[in]VARIANT_BOOL fShowCurrentSection,
[in]VARIANT_BOOL fShowCurrentPage,
[in]VARIANT_BOOL fShowUnfiledNotes);
参数
recentResults – 一个类型为 RecentResultType 的对象,该对象指示应显示哪个最近的结果列表(如果有)。 如果 rrtNone处于选中状态,没有最新的结果列表将显示在对话框中。

fShowCurrentSection – 一个布尔值,指示当前部分是否应包含在最近的结果列表中。

fShowCurrentPage – 一个布尔值,指示是否应将当前页包含在最近的结果列表中。

fShowUnfiledNotes – 一个布尔值,指示是否应在最近的结果列表中包括“未归档笔记”部分。

注意

[!注释] 如果无法使用任一按钮的对话框中选中的特殊归档位置,则不将其显示在列表中。 如果不找到了最近的结果列表中的任何可选项,将显示没有最新的结果列表。

下面的示例使用 SetRecentResults方法在最近的结果列表中显示当前节、 当前页和未归档的注释部分。

        static void Main(string[] args)
        {
            Microsoft.Office.Interop.OneNote.Application app = 
                new Microsoft.Office.Interop.OneNote.Application();
            ... 
            // RECENT RESULTS
            qfDialog.SetRecentResults(RecentResultType.rrtFiling,
                /*Current Section*/ true,
                /*Current Page*/ true,
                /*Unfiled Notes*/ true);
            ...
        }

AddButton

说明
说明
允许用户添加和自定义对话框中的按钮。 用户可以指定的按钮和 OneNote 层次结构的元素可选择通过每个按钮上的文本。
语法
HRESULT AddButton (
[in]BSTR bstrText,
[in]HierarchyElement allowedElements,
[in]HierarchyElement allowedReadOnlyElements,
[in]VARIANT_BOOL fDefault);
参数
bstrText – 指定要显示在按钮上的文本的字符串。 要自定义的默认 确定按钮,将作为 bstrText传递中 null 值。
allowedElements一个 HierarchyElement ,指示允许用户使用按钮选择哪些非只读 OneNote 层次结构元素。 选择多个项目,用户应通过 OR运算符中的所有 HierarchyElement类型允许作为 HierarchyElementuint 等效值。

allowedReadOnlyElements一个 HierarchyElement ,指示允许用户使用按钮选择哪些 OneNote 只读层次结构元素。 选择多个项目,用户应通过在 OR运算符 HierarchyElement类型允许作为 HierarchyElement的所有 uint 等效值。

fDefault – 一个布尔值,该值指定此按钮是否应为默认按钮。 如果多个按钮设置为默认值,最后一个指定的按钮将成为默认按钮。

下面的示例将三个按钮添加到快速归档对话框。 第一个, 所有,可以选择通过 OneNote 层次结构树中的所有元素。 仅当选择其相应的元素,笔记本和页面,可以选择其他, 笔记本页面

        static void Main(string[] args)
        {
            Microsoft.Office.Interop.OneNote.Application app = 
                new Microsoft.Office.Interop.OneNote.Application();
            ... 
            
            // BUTTONS
            HierarchyElement heAll = (HierarchyElement) 
                ((uint)HierarchyElement.heNotebooks | 
                (uint)HierarchyElement.heSectionGroups | 
                (uint)HierarchyElement.heSections |  
                (uint)HierarchyElement.hePages);
            
            qfDialog.AddButton("All", heAll, heAll, true);
            qfDialog.AddButton("Notebooks", HierarchyElement.heNotebooks, 
                HierarchyElement.heNotebooks, false);
            qfDialog.AddButton("Pages", HierarchyElement.hePages, 
                HierarchyElement.hePages, false);
            ... 
        }

Run

说明
说明
在新线程中的快速归档对话框中显示。 计 IQuickFilingDialogCallback接口,关闭该对话框后,将调用其 OnDialogClosed方法的引用。
语法
HRESULT Run (
[in]IQuickFilingDialogCallback piCallback);
参数
piCallback – 对 IQuickFilingDialogCallback 接口的引用,该接口将在对话框关闭后实例化。

下面的示例使用 Run方法显示新线程中的快速归档对话框。

    class OpenQuickFilingDialog
    {
            ... 
        static void Main(string[] args)
        {
            Microsoft.Office.Interop.OneNote.Application app = 
                new Microsoft.Office.Interop.OneNote.Application();
            ... 
            // Display Quick Filing UI
            qfDialog.Run(new Callback());
            ... 
        }
    }

TreeCollapsedState

说明
说明
指示是否应展开或折叠的层次结构树。
语法
HRESULT TreeCollapsedState(
[in] TreeCollapsedStateType tcs);
参数
tcs -指定是否展开或折叠树。

NotebookFilterOut

说明
说明
筛选器的显示类型的笔记本的列表。
语法
HRESULT NotebookFilterOut(
[in] NotebookFilterOutType nfo);
参数
nfo -指定一组的是要从列表中筛选的笔记本

ShowCreateNewNotebook

说明
说明
在对话框中显示新建笔记本选项。
语法
HRESULT ShowCreateNewNotebook ();
参数

AddInitialEditor

说明
说明
到笔记本中的快速归档对话框中,作为初始编辑器中添加用户。
语法
HRESULT AddInitialEditor (BSTR initialEditor);
参数
initialEditor -要将作为编辑器添加到笔记本的用户的电子邮件地址。 通过快速归档对话框中创建笔记本后,会自动共享与所有初始编辑器中。

ClearInitialEditors

说明
说明
从快速归档对话框中删除所有的初始编辑器。
语法
HRESULT ClearInitialEditors ();
参数

ShowSharingHyperlink

说明
说明
在快速归档对话框中显示共享帮助主题超链接。
语法
HRESULT ShowSharingHyperlink();
参数
None

IQuickFilingDialogCallback 接口

此接口允许用户访问对话框属性后将关闭对话框。 一旦对话框关闭, OneNote 2013此接口中调用 IQuickFilingDialogCallback.OnDialogClose方法。

继承此接口的类必须定义。

方法

以下部分介绍与前面详细介绍的接口关联的方法。

OnDialogClosed

说明
说明
使用户可以添加捕获并从该对话框中使用用户选择的功能。 关闭快速归档对话框中后,调用此方法。 此方法是 IQuickFilingDialogCallback接口具有定义的函数。
语法
HRESULT OnDialogClosed (
[in]IQuickFilingDialog dialog);
参数
dialog – 调用 OnDialogClose 方法的 IQuickFilingDialog 对象。

下面的示例是一个示例 IQuickFilingDialogCallback接口。 OnDialogClose方法将从快速归档对话框中的用户的选择打印到控制台。

    class Callback : IQuickFilingDialogCallback
    {
        public Callback(){}
        public void OnDialogClosed(IQuickFilingDialog qfDialog)
        {
            Console.WriteLine(qfDialog.SelectedItem);
            Console.WriteLine(qfDialog.PressedButton);
            Console.WriteLine(qfDialog.CheckboxState);
        }
    }

示例

下面的代码示例打开一个快速归档对话框具有自定义的标题、 说明、 最近的结果列表、 树深度、 复选框和按钮。 用户的已选定项目,按下按钮,并关闭对话框时将在控制台窗口中显示复选框状态。 若要查看已启用页面按钮,用户将具有搜索页面并选择它,因为树深度设置为各节。 对话框中不是任何窗口的子级。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using Microsoft.Office.Interop.OneNote;
namespace SampleQFD
{
    class OpenQuickFilingDialog
    {
        private static EventWaitHandle wh = new AutoResetEvent(false);
        private static IQuickFilingDialog qfDialog;
        private static String strTitle = "Sample Title";
        private static String strDescription = "Sample Description";
        private static String strCheckboxText = "Sample Checkbox";
        static void Main(string[] args)
        {
            Microsoft.Office.Interop.OneNote.Application app = 
                new Microsoft.Office.Interop.OneNote.Application();
            // Instantiate Quick Filing UI
            qfDialog = app.QuickFiling();
            #region//SET API PARAMETERS
            // TITLE
            qfDialog.Title = strTitle;
            // DESCRIPTION
            qfDialog.Description = strDescription;
            // RECENT RESULTS
            qfDialog.SetRecentResults(RecentResultType.rrtFiling,
                /*Current Section*/ true,
                /*Current Page*/ true,
                /*Unfiled Notes*/ true);
            // TREE DEPTH
            qfDialog.TreeDepth = HierarchyElement.heSections;
            // CHECKBOX
            qfDialog.CheckboxText = strCheckboxText;
            qfDialog.CheckboxState = false;
            // BUTTONS
            HierarchyElement heAll = (HierarchyElement) 
                ((uint)HierarchyElement.heNotebooks | 
                (uint)HierarchyElement.heSectionGroups | 
                (uint)HierarchyElement.heSections |  
                (uint)HierarchyElement.hePages);
            
            qfDialog.AddButton("All", heAll, heAll, true);
            qfDialog.AddButton("Notebooks", HierarchyElement.heNotebooks, 
                HierarchyElement.heNotebooks, false);
            qfDialog.AddButton("Pages", HierarchyElement.hePages, 
                HierarchyElement.hePages, false);
            // PARENTWINDOW
            #endregion
            // Display Quick Filing UI
            qfDialog.Run(new Callback());
            // Clean up and Wait so console window does not close
            qfDialog = null;
            wh.WaitOne();
        }
    }
    class Callback : IQuickFilingDialogCallback
    {
        public Callback(){}
        public void OnDialogClosed(IQuickFilingDialog qfDialog)
        {
            Console.WriteLine(qfDialog.SelectedItem);
            Console.WriteLine(qfDialog.PressedButton);
            Console.WriteLine(qfDialog.CheckboxState);
        }
    }
}

另请参阅