views:

90

answers:

4

I don't work with the Windows API much, but I've seen it used there as well as occasionally in a codebase here at work.

+3  A: 

It's a naming convention that simply indicates the function is an extended version of an original.

Larsenal
Yes, this is to provide backwards compatibility - Windows hardly ever obsoletes an API function.
Mark Ransom
+1  A: 

Not sure but I guess it stands for extended.

Giorgi
If you weren't sure, why did you answer?
Mark Ransom
+1, nothing wrong with guessing correctly. Many SO users do so, but without announcing it. Would be nice if they did so you'd have an idea how accurate the guess might be.
Hans Passant
@Mark: because it may give the OP a new angle to look at, or because it may prompt somebody else to correct/extend it
Marjan Venema
+7  A: 

It's usually done as a way of changing the parameters to a function in an API without breaking existing client code. Old code can continue to use the previous version, while new code can take advantage of the new features offered by the Ex version.

Boojum
+3  A: 

Yup, they wanted to improve (Extend) the API and keep a similar name so it was likely that the programmer would move to the new version.

Notable is GetVersionEx() to get the Windows version, pretty painful for a while with a nasty chicken-and-egg problem.

The record keeper is the National Language Support team who have several ExEx versions, like EnumCalendarInfoExEx. Unsurprising, culture moves even faster than software. No ExExEx as of yet.

Hans Passant