OLE DB Simple Provider Toolkit

OLEDBSimpleProvider::setVariant

Sets the value of the cell at the row and column indicated to the value of the Variant supplied in pVar in the type requested by the value of fFormatted.

setVariant uses the following enumeration:

typedef enum OSPFORMAT {
   OSPFORMAT_RAW = 0,
   OSPFORMAT_DEFAULT = 0,
   OSPFORMAT_FORMATTED = 1,
   OSPFORMAT_HTML = 2
};

The preceding values are defined in the following table.

Value Meaning
OSPFORMAT_RAW

OSPFORMAT_DEFAULT

Underlying column type should be used to set the value (the default).
OSPFORMAT_FORMATTED The input string is placed into the cell based on provider-specific heuristics.
OSPFORMAT_HTML Provider-specific. The input string optionally can be in HTML format.
HRESULT setVariant (
   LONG        iRow,
   LONG        iColumn,
   OSPFORMAT   fFormatted,
   VARIANT    *pVar);

Parameters

iRow
[in]
Position of the specified row.
iColumn
[in]
Position of the specified column.
fFormatted
[in]
Enumerated value that determines the format in which to return the cell value's underlying column type. (See table above.)
pVar
[in/out]
Based on the value specified in the pVar parameter, pVar will contain one of the following:
  • A value with the underlying type of the column.
  • A string corresponding to the underlying type of the column.
  • An HTML fragment corresponding to the underlying type of the column.

Return Codes

S_OK
The method succeeded.
E_FAIL
The value could not be set, or the provider was read-only.

Comments

setVariant does not support references.

setVariant requires the following notifications:

With any formatting option, it is the provider's responsibility to perform the appropriate coercion to the underlying type of the column. In cases where the coercion cannot be successfully completed, an appropriate error code should be returned.

With the value OSPFORMAT_FORMATTED, the provider is free to interpret the input string however it sees fit. Alternatively, the provider may attempt to parse the input string and heuristically determine an appropriate data type and value to place into the cell—for example, when updating formatted spreadsheet cells.

When OSPFORMAT_HTML is requested, the provider may optionally return a plain string (for example, unadorned with HTML tags).

A data value of NULL is indicated by passing a Variant of type VT_NULL in pVar for any of the fFormatted types.

Do not use a value of -1 as an argument with the iRow and iColumn arguments of setVariant. You must set table cells individually; they cannot be set a row or column at a time.

For more information and programming considerations about sending and receiving notifications, see "OSP Notifications."