如何获取对象值
How get object value?
我的程序必须通过#import指令与另一个程序通信。它创建了一个新文档,并将TextFrame与默认参数
放在上面。HRESULT hr = CoInitialize(NULL);
_ApplicationPtr myApp("InDesign.Application");
DocumentPtr myDoc = myApp->ActiveDocument;
PagePtr myPage = myDoc->Pages->Item[1L];
TextFramePtr myTextFrame = myPage->TextFrames->Add(); // create frame on Page
TextFramePtr myTextFrame_2 = myPage->TextFrames->Item[2L]; // Get second frame on Page;
TextFrame对象有方法GeometricBounds来改变帧的大小。下面是我设置帧大小的代码:
double mySize[4] = {12.7, 12.7, 66.7, 83.2};
SAFEARRAY * Bound;
VARIANT Array;
Array.vt = VT_ARRAY | VT_R8;
Bound = SafeArrayCreateVector(VT_R8, 1, 4);
for (int i = 0; i < 4; i++)
{
long index = i + 1;
SafeArrayPutElement(Bound, &index, &mySize[i]);
}
Array.parray = Bound;
myTextFrame->GeometricBounds = Array;
这是我创建的框架,但我怎么能得到另一个框架的大小,已经存在于文档中?
Property GeometricBounds As Variant TextFrame的边界,不包括笔画宽度,格式为[y1, x1, y2, x2],它给出了边界框的左上角和右下角的坐标。
TLB文件中方法的描述:
Frame : IDispatch
{
// Property data
__declspec(property(get=GetGeometricBounds,put=PutGeometricBounds))
_variant_t GeometricBounds;
...
// Methods:
void PutGeometricBounds (
const _variant_t & _arg1 );
_variant_t GetGeometricBounds ( );
....
}
访问SAFEARRAY
的元素需要调用:
- SafeArrayGetLBound:返回安全数组的任何维度的下界。
- SafeArrayGetUBound:返回安全数组的任何维度的上界。
- SafeArrayGetElement:检索数组中的单个元素。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 如何将图像的字节数组(取自 s3)转换为 C++ 或 C 中的图像/图像对象
- 对象文件"Version References"从何而来?
- C 获得了C 自动对象
- 动态对象数组在C++和Java中有何不同?
- 在没有 new 关键字的情况下初始化C++对象的内存从何而来
- Boost.python 将对象拉取到本地范围内以进行读取访问
- 取两个size_t对象的差异是否安全
- 缺少复制构造函数与对象切片有何关系
- 如何使用英特尔预取pragma时,数据隐藏在一个对象