void BStrToString(str::Str<char>& strInOut, BSTR str, char *defString, bool stripWhitespace) { strInOut.Reset(); if (!str) { strInOut.Append(defString); return; } OLECHAR c; int len = SysStringLen(str); for (int i=0; i<len; i++) { c = str[i]; if (stripWhitespace && isspace(c)) continue; if (c < 32 || c >= 128) c = '?'; strInOut.Append((char)c); } }