Интерфейсы диалогового окна "Быстрая регистрация" (OneNote)
В этом разделе описываются интерфейсы, которые можно использовать для программной настройки диалогового окна Быстрая регистрация в OneNote 2013.
Диалоговое окно "Быстрая регистрация"
Диалоговое окно Быстрая регистрация в OneNote 2013 — это настраиваемое диалоговое окно, позволяющее пользователям выбрать расположение в структуре иерархии OneNote. Доступные расположения включают записные книжки, группы разделов, разделы, страницы и вложенные страницы. Диалоговое окно используется как в приложении OneNote, так и во внешних приложениях через API OneNote 2013. На рисунке 1 показано диалоговое окно Быстрая регистрация в состоянии по умолчанию.
Рис. 1. Диалоговое окно "Быстрая подготовка файлов" без настроек
В диалоговом окне пользователи могут перемещаться по иерархии "Все записные книжки" для поиска определенных расположений или поиска в структуре дерева OneNote, введя в текстовое поле. К аспектам диалогового окна, которые можно настроить, относятся заголовок, описание, список последних результатов, текст и состояние поля проверка, глубина дерева, кнопки и типы расположения с возможностью выбора.
Вы можете получить доступ к функции диалогового окна "Быстрая регистрация" через два интерфейса OneNote 2013. Интерфейс IQuickFilingDialog позволяет пользователям создавать экземпляры, настраивать и запускать диалоговое окно. Интерфейс IQuickFilingDialogCallback вызывается после закрытия диалогового окна. Диалоговое окно запускается в процессе OneNote, поэтому необходим механизм для поддержания работы потока диалогового окна, а затем для записи выбора пользователем и состояния диалогового окна при его закрытии.
Интерфейс IQuickFilingDialog
Этот интерфейс позволяет пользователю настраивать и запускать диалоговое окно. Пользователь может создать экземпляр диалогового окна с помощью класса Application с помощью метода Application.QuickFilingDialog . Метод возвращает экземпляр диалогового окна. После установки свойств диалогового окна для запуска диалогового окна используется метод IQuickFilingDialog.Run . Этот метод запускает диалоговое окно в новом потоке.
Свойства
Name | Тип | Описание |
---|---|---|
Title |
string |
Возвращает или задает текст заголовка, отображаемый в строке заголовка диалогового окна. |
Описание |
string |
Возвращает или задает текстовое описание, чтобы указать пользователю, что выбрать. Это значение может быть многострочный текст. |
CheckboxText |
string |
Возвращает или задает текст, следующий за полем проверка. Если для этого значения задана непустая строка, в диалоговом окне появится поле проверка. Если значение является пустой строкой, проверка поле не отображается. |
CheckboxState |
логический |
Возвращает или задает состояние поля проверка. Если задано значение false, поле проверка очищается при запуске диалогового окна. Если задано значение true, поле проверка выбирается при запуске диалогового окна при условии, что CheckboxText является непустой строкой. |
WindowHandle |
Ulong |
Возвращает идентификатор дескриптора диалогового окна "Быстрая регистрация". |
TreeDepth |
HierarchyElement |
Возвращает или задает глубину дерева OneNote, которое должно отображаться в разделе Все записные книжки. По умолчанию дерево отображается до разделов. Это свойство не влияет на тип элементов, которые можно выбрать. Если для объекта TreeDepth задан элемент ниже в иерархии OneNote, чем может быть выбран любой из кнопок, отображаемая глубина дерева будет наименьшим из возможных элементов, которые можно выбрать. То есть, если задана глубина дерева для отображения до страниц, но наименьший доступный элемент — это раздел, дерево отображается до разделов. |
ParentWindowHandle |
Ulong |
Возвращает или задает идентификатор дескриптора родительского окна диалогового окна. Если это свойство задано, при открытии диалогового окна Быстрая регистрация будет модальным по отношению к назначенному родительскому окну. То есть пользователь не сможет получить доступ к родительскому окну, пока диалоговое окно быстрая регистрация не будет закрыто. |
Position |
tagPOINT |
Возвращает или задает положение окна по отношению к экрану. По умолчанию диалоговое окно отображается в центре родительского окна или рабочего стола. |
SelectedItem |
string |
Возвращает идентификатор объекта расположения OneNote, выбранного пользователем при закрытии диалогового окна. Если пользователь нажимает кнопку Отмена , объекту присваивается значение NULL. |
Нажатиеbutton |
Ulong |
Возвращает кнопку, нажатую при закрытии диалогового окна. Если была нажата кнопка Отмена , это свойство возвращает значение -1. Всем остальным кнопкам присваиваются целочисленные значения от 0, которые увеличиваются на 1 для каждой кнопки, добавленной в диалоговое окно. Целочисленное значение кнопки ОК по умолчанию равно 0. |
Методы
SetRecentResults
Значение | Описание |
---|---|
Описание |
Задает, какой список последних результатов будет отображаться в диалоговом окне Быстрая регистрация, и указывает, следует ли включать в список некоторые специальные расположения для подачи заявок. Пользователи могут выбрать список последних результатов из перечисления RecentResultType . Пользователи также могут добавить в список следующие параметры: Current Section, Current Page или Unfiled Notes. Если выбран параметр 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 — логическое значение, указывающее, следует ли включать раздел Unfiled Notes в список последних результатов. |
Примечание.
Если специальное расположение для подачи не может быть выбрано с помощью кнопок в диалоговом окне, оно не отображается в списке. Если в списке последних результатов не найден элемент, доступный для выбора, список последних результатов не отображается.
В следующем примере метод SetRecentResults используется для отображения текущего раздела, текущей страницы и раздела Unfiled Notes в списке последних результатов.
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 — строка, указывающая текст, отображаемый на кнопке. Чтобы настроить кнопку ОК по умолчанию, передайте значение NULL как bstrText. allowedElements — HierarchyElement , указывающий, какие элементы иерархии OneNote, не доступные только для чтения, пользователь может выбрать с помощью кнопки. Для выбора нескольких элементов пользователь должен передать оператор OR для всех эквивалентных значений uint типов HierarchyElement , разрешенных в качестве HierarchyElement. allowedReadOnlyElements — элемент HierarchyElement , указывающий, какие элементы иерархии Только для чтения OneNote пользователь может выбрать с помощью кнопки. Для выбора нескольких элементов пользователь должен передать оператор OR для всех значений эквивалентов uint типов HierarchyElement , разрешенных в качестве HierarchyElement. fDefault — логическое значение, указывающее, должна ли эта кнопка быть кнопкой по умолчанию. Если по умолчанию задано несколько кнопок, последняя указанная кнопка становится кнопкой по умолчанию. |
В следующем примере три кнопки добавляются в диалоговое окно Быстрая регистрация. Первый из них, All, можно выбрать всеми элементами в дереве иерархии 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(); |
Параметры |
Нет |
Интерфейс IQuickFilingDialogCallback
Этот интерфейс позволяет пользователю получить доступ к свойствам диалогового окна после закрытия диалогового окна. После закрытия диалогового окна OneNote 2013 вызывает метод IQuickFilingDialogCallback.OnDialogClose в этом интерфейсе .
Класс, наследующий этот интерфейс, должен быть определен.
Методы
В следующем разделе описываются методы, связанные с интерфейсами, описанными ранее.
OnDialogClosed
Значение | Описание |
---|---|
Описание |
Позволяет пользователям добавлять функциональные возможности для записи и использования выбора пользователей в диалоговом окне. Этот метод вызывается после закрытия диалогового окна Быстрая регистрация. Этот метод представляет собой функцию, которую должны определять интерфейсы IQuickFilingDialogCallback . |
Синтаксис |
HRESULT OnDialogClosed ( [in]IQuickFilingDialog dialog); |
Параметры |
dialog — объект IQuickFilingDialog , который вызвал метод OnDialogClose . |
В следующем примере показан пример интерфейса 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);
}
}
}