Chinese Simplified (简体中文)

属性处理

ABBYY FineReader Engine 对象的接口有多种属性和方法。一般来说,属性表示关于对象的信息,而方法表示对象可执行的操作。

C# 以及 Visual Basic 用户对属性概念比较熟悉。对于 C++ 用户,属性是 get 和 put 方法(读写属性 )或单个 get 方法(只读属性)。不过,Microsoft C++ 特有的“Native COM 支持”使其属性处理方式接近于 C# 的处理方式。

ABBYY FineReader Engine 属性可包含以下类型:

IDL C++ C# Visual Basic .NET
VARIANT_BOOL (VARIANT_TRUEVARIANT_FALSE) VARIANT_BOOL (VARIANT_TRUE 或 VARIANT_FALSE) bool (true 或 false) Boolean (True 或 False)
int int int Integer
double double double Double
BSTR,Unicode 字符串指针。零值指定空字符串。 BSTR string String
__int64 __int64 Int64 Int64
HANDLE* void* IntPtr IntPtr
IUnknown-derived interface IUnknown-derived interface 对象 对象
enum enum enum Enum

不同类型属性的处理方式如下:

处理简单属性

处理字符串属性

Working with object properties

处理只读对象属性

某些 ABBYY FineReader Engine 对象(例如,ILayout::Blocks)具有只读对象属性。此类属性并非不可更改,只是不能通过直接用另一个对象替代其对象属性对其更改,因为不支持“put”方法。不过,您可以更改这些对象的子对象。

在 raw C++ 中,如果 要更改这样的属性,则需要将属性对象的引用传递给新变量,然后使用该变量来更改它。只读集合 ILayout::Blocks 属性的 C++ 示例如下:

// 假设页面已打开
ILayout* pLayout = 0;
ILayoutBlocks* pLayoutBlocks = 0;
int blockIndex = 0;
// 接收之前打开的 FRPage 的布局 
pFRPage->get_Layout( &pLayout );
// pLayoutBlocks 变量收到 Layout 的块集合的引用
pLayout->get_Blocks( &pLayoutBlocks );
// 从块集合去除一个元素
pLayoutBlocks->DeleteAt( blockIndex );
// 处理修改的布局
...
// 发布对象
pLayoutBlocks->Release();
pLayout->Release();
  

24.03.2023 8:51:52

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.