+static HRESULT Global_GetLocale(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) +{ + return return_int(res, GetACP()); +} This looks completely wrong. Docs say it should return locale id (as name suggests), not a codepage value.
+static HRESULT Global_GetLocale(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) +{ + return return_int(res, GetACP()); +}