| 695 | } |
| 696 | |
| 697 | HRESULT ConvertVariantToString(const VARIANT *vt, TCHAR *szDetail, size_t cchMax, BOOL friendlyDate) |
| 698 | { |
| 699 | HRESULT hr; |
| 700 | |
| 701 | switch (vt->vt) |
| 702 | { |
| 703 | case VT_DATE: |
| 704 | /* Although dates can be converted directly to strings, a custom |
| 705 | conversion function is used for two reasons: |
| 706 | 1. To ensure that the date is in the local timezone (dates are |
| 707 | in UTC by default). |
| 708 | 2. To ensure that the date display is consistent with how other |
| 709 | dates in the application are displayed. */ |
| 710 | hr = ConvertDateVariantToString(vt->date, szDetail, cchMax, friendlyDate); |
| 711 | break; |
| 712 | |
| 713 | case VT_ARRAY | VT_BSTR: |
| 714 | hr = ConvertVariantStringArrayToString(vt->parray, szDetail, cchMax); |
| 715 | break; |
| 716 | |
| 717 | default: |
| 718 | hr = ConvertGenericVariantToString(vt, szDetail, cchMax); |
| 719 | break; |
| 720 | } |
| 721 | |
| 722 | return hr; |
| 723 | } |
| 724 | |
| 725 | HRESULT ConvertDateVariantToString(DATE date, TCHAR *szDetail, size_t cchMax, BOOL friendlyDate) |
| 726 | { |
no test coverage detected