InsertCrossReference 插入交叉引用返回失败
麒麟(Linux)系统下,C++对WPS进行二次开发时,通过spSelection->InsertCrossReference 插入“表”的交叉引用时返回失败, HRESULT值为-2147417851,请大神帮忙解答;
调用如下:
KComVariant varRefType(__X("表")); // 引用类型,与题注标签一致
KComVariant varRefKind(wdOnlyLabelAndNumber); // 或使用 wdPageNumber, wdNumberOfPage 等,根据你想引用的内容
WdReferenceKind emReferenceKind = wdOnlyLabelAndNumber;
// 或者使用特定的 WdReferenceKind 枚举值,如 wdCaptionNumber
KComVariant varRefItem(__X("表 1")); // 要引用的具体题注文本,例如“表 1”
KComVariant varInsertAsHyperlink(true); // 是否作为超链接插入
KComVariant varIncludePosition(false); // 是否包含相对位置信息
KComVariant varSeparateNumbers(false);
KComVariant varSeparatorString(__X(""));
// 调用InsertCrossReference方法
hr = spSelection->InsertCrossReference(
&varRefType,
emReferenceKind,
&varRefItem,
&varInsertAsHyperlink,
&varIncludePosition,
&varSeparateNumbers,
&varSeparatorString);