我的这段工作代码可以访问Outlook AppointmentItem.PropertyAccessor.GetProperties方法:var lPropertyAccessor: OLEVariant; lDT : TDateTime; lSchemas, lValues: Variant;lPropertyAccessor := AAppointmentItem.PropertyAccessor;lSchemas := VarArrayOf([cPublicStringNameSpace + PROPERTY_TIMETELLID + 'fail', cPublicStringNameSpace + PROPERTY_TIMETELLSYNCTIME, cPublicStringNameSpace + PROPERTY_TIMETELLSYNCID]);try lValues := lPropertyAccessor.GetProperties(lSchemas); lEvent.CustSyncTTID := lValues[0]; lDT := lValues[1]; lDT := TTimeZone.Local.ToLocalTime(lDT); lEvent.CustSyncDate := lDT; lEvent.CustSyncEntryID := lValues[2];exceptend;我导致第一个数组条目(“ +'fail'”)失败,因为我想测试文档中所说的内容:If an error occurs for getting a specific property, the Err value will be returned in the corresponding location in the returned array.调用GetProperty后,根据检查器窗口,lValues [0]包含:Error(-2147221233)。我试图找到一个具有此值的Windows常量,以便可以对其进行测试(如果lValues [0] MagicalWindowsConst ...),但是我找不到它或其等效的十六进制FFFFFFFF8004010F(即使在Embarcadero源文件)。如果我让代码继续,则lEvent.CustSyncTTID的整数赋值为:'无法将类型(错误)的变体转换为类型(整数)'这表明存在某种“错误”变体类型???我也找不到。我尝试定义const cErr = -2147221233或const cErr : Int64 = -2147221233,但这在if lValues[0] <> cErr上给了我一个无效的变量操作错误。我可以根据哪些测试来确定数组元素是否返回错误代码? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我找到了:我可以测试if VarType(lValues[0]) <> varError所以我显然忽略了is a varError type关于delphi - 什么是“类型变量(错误)”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17210111/ (adsbygoogle = window.adsbygoogle || []).push({});
10-08 22:43