SafeArrayCreateVector does not set FADF_HAVEVARTYPE

  • Thread starter Thread starter cricketj55
  • Start date Start date
C

cricketj55

In Windows 2000 if you call SafeArrayCreateVector, the returned
SAFEARRAY does not have the FADF_HAVEVARTYPE set in the fFeatures word.

For example,

SAFEARRAY *psa1 = ::SafeArrayCreateVector( VT_VARIANT, 0, 1 );
SAFEARRAY *psa2 = ::SafeArrayCreateVectorEx( VT_VARIANT, 0, 1, NULL );

psa1->fFeatures == 0x2800 // no FADF_HAVEVARTYPE
but
psa2->fFeatures == 0x2880 // has FADF_HAVEVARTYPE

Under Windows XP and 2003, both SafeArrayCreateVector and
SafeArrayCreateVectorEx will set the FADF_HAVEVARTYPE flag.

SafeArrayGetVartype() will fail without the FADF_HAVEVARTYPE flag.

thanks,

cj
 
Back
Top