title: What is a "Variant of type (Error)"?
body: <p>I have this working piece of code accessing an Outlook <a href="http://msdn.microsoft.com/en-us/library/office/ff869865.aspx" rel="nofollow">AppointmentItem.PropertyAccessor.GetProperties</a> method:</p>
  
  <pre><code>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];
  except
  end;
  </code></pre>
  
  <p>I am causing this to fail for the first array entry ("  + 'fail' "), because I want to test what the documentation says:<br />
  <code>If an error occurs for getting a specific property, the Err value will be returned in the corresponding location in the returned array.</code></p>
  
  <p>After calling GetProperties, according to the inspector window, lValues[0] contains: Error(-2147221233).</p>
  
  <p>I have tried to find a Windows named constant with this value so that I can test against it (if lValues[0] &lt;> MagicalWindowsConst then...), but I can't find it or its hex equivalent FFFFFFFF8004010F (not even in the Embarcadero source files).</p>
  
  <p>If I let the code continue, the integer assignment for lEvent.CustSyncTTID gives:<br />
  'Could not convert variant of type (Error) into type (Integer)'</p>
  
  <p>That would suggest there is some 'error' variant type??? I can't find that either.</p>
  
  <p>I tried defining <code>const cErr = -2147221233</code> or <code>const cErr : Int64 = -2147221233</code> but that gives me an Invalid Variant Operation error on the <code>if lValues[0] &lt;&gt; cErr</code>.</p>
  
  <p>What can I test against to determine if the array element returns the error code?</p>