windows - Hvad er forskellen mellem TYPE\_E\_BUFFERTOOSMALL og DISP\_E\_BUFFERTOOSMALL HRESULT værdier?

Indlæg af Hanne Mølgaard Plasc

Problem



Gennemgang WinError.h Jeg har bemærket, at der er to HRESULT værdier:


#define DISP\_E\_BUFFERTOOSMALL \_HRESULT\_TYPEDEF\_(0x80020013L)
#define TYPE\_E\_BUFFERTOOSMALL \_HRESULT\_TYPEDEF\_(0x80028016L)


begge hævdes at løse til 'buffer for lille' tekst, og de begge har samme 'facilitet' -del og er kun forskellige i 'kode' -delen.


Hvad er forskellen mellem disse to værdier?

Bedste reference


DISP\_E\_BUFFERTOOSMALL er beregnet til generel brug i IDispatch grænseflader.


Jeg mener, at TYPE\_E\_* fejl er beregnet til typekonverteringsfejl. TYPE\_E\_BUFFERTOOSMALL synes at have problemer med at konvertere VARIANT s eller PROPVARIANT s. Jeg kiggede rundt og fandt det brugt i sammenhæng med 'ejendomssække' (som er en serialiserbar samling); Se f.eks. dette. [10]


I forbindelse med dit andet spørgsmål er DISP\_E\_BUFFERTOOSMALL en bedre pasform.