Поделиться через


Метод IContextNode::GetPropertyData

Извлекает данные конкретного приложения или другие данные свойств для указанного идентификатора.

Синтаксис

HRESULT GetPropertyData(
  [in]      const GUID  *pPropertyDataId,
  [in, out]       ULONG *pulPropertyDataSize,
  [out]           BYTE  **ppbPropertyData
);

Параметры

pPropertyDataId [in]

Идентификатор данных.

pulPropertyDataSize [in, out]

Размер данных в байтах. Передаваемое значение не используется.

ppbPropertyData [out]

Указатель на 8-разрядный массив целых чисел без знака, содержащий данные свойства.

Возвращаемое значение

Описание возвращаемых значений см. в разделе Классы и интерфейсы — анализ рукописного ввода.

Remarks

Внимание!

Чтобы избежать утечки памяти, используйте CoTaskMemFree, чтобы освободить память из *ppbPropertyData , когда информация больше не нужна.

Помимо получения данных для конкретного приложения, добавленных с помощью IContextNode::AddPropertyData, этот метод используется для получения общих свойств, описанных константами контекстного узла .

К свойствам строкового типа относятся:

  • GUID_CNP_RECOGNIZEDSTRING
  • GUID_CNP_SHAPENAME
  • GUID_AHP_ANALYSISHINTNAME
  • GUID_AHP_PREFIXTEXT
  • GUID_AHP_SUFFIXTEXT
  • GUID_AHP_FACTOID

Возвращаемое значение — WCHAR*. При приведение параметра *ppbPropertyData к WCHAR* возвращается (length of the string + 1) * sizeof(WCHAR)длина .

Свойства типа Boolean включают:

  • GUID_AHP_OVERRIDELANGUAGEID
  • GUID_AHP_COERCETOFACTOID
  • GUID_AHP_WORDMODE

Возвращаемое значение равно VARIANT_BOOL. Если приведение параметра *ppbPropertyData к VARIANT_BOOL* возвращается sizeof(VARIANT_BOOL)длина .

GUID_AHP_GUIDE является свойством типа направляющей. Возвращаемое значение — InkAnalysisRecognitionGuide*. При приведение параметра *ppbPropertyData к InkAnalysisRecognitionGuide* возвращается sizeof(InkAnalysisRecognitionGuide)длина .

К свойствам целочисленного типа относятся:

  • GUID_CNP_LINENUMBER
  • GUID_CNP_POINTSPERINCH
  • GUID_CNP_CONFIDENCELEVEL
  • GUID_CNP_CONFIRMATION
  • GUID_CNP_MAXIMUMSTROKECOUNT
  • GUID_CNP_SEGMENTATION
  • GUID_CNP_ALIGNMENTLEVEL

Возвращаемое значение — LONG*. При приведение параметра *ppbPropertyData к LONG* возвращается sizeof(LONG)длина .

Свойства типа метрик строки:

  • GUID_CNP_ASCENDERS
  • GUID_CNP_DESCENDERS
  • GUID_CNP_BASELINE
  • GUID_CNP_MIDLINE

Возвращаемое значение — LONG*. При приведение параметра *ppbPropertyData к LONG* возвращается sizeof(LONG)*4длина , обозначающая значения (x, y) для начальных точек, за которыми следуют значения (x, y) для конечных точек.

GUID_CNP_TEXTRECOGNIZERID является свойством GUID . Возвращаемое значение — GUID*. При приведение параметра *ppbPropertyData к GUID* возвращается sizeof(GUID)длина .

GUID_CNP_ROTATEDBOUNDINGBOX является повернутой ограничивающей рамкой. Возвращаемое значение — LONG*. При приведение параметра *ppbPropertyData к long* возвращается sizeof(LONG)*8длина , обозначающая значения (x, y) для четырех углов поля.

GUID_CNP_HOTPOINT является свойством горячей точки. Возвращаемое значение — LONG*. Если вы приводите параметр *ppbPropertyData к long* , его возвращаемая длина равна sizeof(LONG)*2, что означает значения (x, y) для точки.

GUID_AHP_WORDLIST является свойством списка слов. Возвращаемое значение — WCHAR*. При приведение параметра *ppbPropertyData к WCHAR* возвращается n * sizeof(WCHAR)длина , где n — это сумма длины строк в списке плюс 1 для каждого завершающего символа NULL для каждой строки.

Примеры

В этом примере показан метод, который обращается к свойству узла контекста AlignmentLevel типа узла контекста Paragraph.

// Checks a paragraph context node's alignment level property.
// Only paragraph type context nodes contain the alignment level property.
HRESULT CMyClass::ExploreParagraphNode(
    IContextNode *pParagraphNode)
{
    // Get the AlignmentLevel property data for the paragraph.
    LONG * alignmentLevel = NULL;
    ULONG ulDataLen = 0;

    HRESULT hr = pParagraphNode->GetPropertyData(
        (const GUID*)&GUID_CNP_ALIGNMENTLEVEL,
        &ulDataLen,
        (BYTE**)&alignmentLevel);

    if( FAILED(hr) ||
        ulDataLen != sizeof(LONG) ||
        alignmentLevel == NULL )
    {
        // Insert code that handles an error here.
    }
    else
    {
        // Insert code that uses the alignment level here.
    }

    // Free the memory allocated for the property data.
    ::CoTaskMemFree(alignmentLevel);

    return hr;
}

Требования

Требование Значение
Минимальная версия клиента
Windows XP Tablet PC Edition [только классические приложения]
Минимальная версия сервера
Ни одна версия не поддерживается
Заголовок
IACom.h (также требуется IACom_i.c)
DLL
IACom.dll

См. также раздел

IContextNode

IContextNode::AddPropertyData

IContextNode::RemovePropertyData

IContextNode::GetPropertyDataIds

IContextNode::ContainsPropertyData

IContextNode::LoadPropertiesData

IContextNode::SavePropertiesData

Справочник по анализу рукописного ввода