This is forwarded from http://bugs.debian.org/669121
Basically, strsafe.h defines various functions in this manner:
#define sprintf sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA;
I suppose the idea here is to cause code using unsafe string-manipulation functions to fail to build, with an error message indicating which functions to use instead. Unfortunately the use of pre-processor defines means that code which defines its own variants of these functions fails to build (because of the semi-colon at the end of the #define). Removing the semi-colon allows the code to build but effectively silently changes the API...
Currently, strsafe.h is only included from dshow.h. Is it intended to be generalised? If not, should it be included from dshow.h at all?
The original bug report has a code example. This is based on code encountered in ptlib/opal/ekiga.