2.2.8 SAFEARRAY Feature Constants

The SF_TYPE enumeration values are used in the discriminant field, sfType, of a SAFEARRAYUNION structure.

The SAFEARRAY feature constants are defined in the SF_TYPE enumeration.

 typedef [v1_enum] enum tagSF_TYPE
 {
   SF_ERROR = VT_ERROR,
   SF_I1 = VT_I1,
   SF_I2 = VT_I2,
   SF_I4 = VT_I4,
   SF_I8 = VT_I8,
   SF_BSTR = VT_BSTR,
   SF_UNKNOWN = VT_UNKNOWN,
   SF_DISPATCH = VT_DISPATCH,
   SF_VARIANT = VT_VARIANT,
   SF_RECORD = VT_RECORD,
   SF_HAVEIID = VT_UNKNOWN | 0x8000
 } SF_TYPE;

SF_ERROR:  This value means that the SAFEARRAY was incorrectly marshaled. The receiver MUST reject any call that has a SAFEARRAY argument with this flag specified, by raising an RPC_X_BAD_STUB_DATA RPC exception.

Hex value is 0x0000000A.

Element marshaling size: N/A

SF_I1:  The type of the elements contained in the SAFEARRAY MUST be a 1-byte integer.

Hex value is 0x00000010.

Element marshaling size in bytes: 1

SF_I2:  The type of the elements contained in the SAFEARRAY MUST be a 2-byte integer.

Hex value is 0x00000002.

Element marshaling size in bytes: 2

SF_I4:  The type of the elements contained in the SAFEARRAY MUST be a 4-byte integer.

Hex value is 0x00000003.

Element marshaling size in bytes: 4

SF_I8:  The type of the elements contained in the SAFEARRAY MUST be an 8-byte integer.

Hex value is 0x00000014.

Element marshaling size in bytes: 8

SF_BSTR:  The type of the elements contained in the SAFEARRAY MUST be a BSTR.

Hex value is 0x00000008.

Element marshaling size in bytes: 4

SF_UNKNOWN:  The type of the elements contained in the SAFEARRAY MUST be a pointer to IUnknown.

Hex value is 0x0000000D.

Element marshaling size in bytes: 4

SF_DISPATCH:  The type of the elements contained in the SAFEARRAY MUST be a pointer to IDispatch (see section 3.1.4).

Hex value is 0x00000009.

Element marshaling size in bytes: 4

SF_VARIANT:  The type of the elements contained in the SAFEARRAY MUST be VARIANT.

Hex value is 0x0000000C.

Element marshaling size in bytes: 16

SF_RECORD:  The type of the elements contained in the SAFEARRAY is a user-defined type (UDT) (as defined in section 2.2.28.1.

Hex value is 0x00000024.

Element marshaling size in bytes: 4

SF_HAVEIID:  The type of the elements contained in the SAFEARRAY MUST be an MInterfacePointer.

Hex value is 0x0000800D.

Element marshaling size in bytes: 4