title: How to custom set regional settings for a single application?
body: <p>I need to somehow "internationalize" an application written in VB6. This I18n is just for a few countries and <strong>the users are aware</strong> that, for instance, they are supposed to use the American decimal separator <code>.</code> instead of a comma <code>,</code>, for instance. Dates are also a big common problem.</p>
  
  <p>My approach if using .NET would be to set the CultureInfo of the main thread when the application starts to en-US. However, in VB6, I'm not able to do that (from what I know).</p>
  
  <p>Did someone face this problem before? What is the best way to solve it? Simplest way, from my POV, would be to override the user regional settings for my application process, but I don't know how to do it in VB6...</p>
  
  <p>Edit: What I would like at this point would be a way to override the user-defined Regional Settings by mine, just for my process</p>
  
  <p>Edit #2: I tried this but it didn't work (my settings are in pt-PT, decimal separator is a comma, I was expecting to get a dot (en-US)):</p>
  
  <pre><code>Private Sub Form_Load()
      SetAmerican
  
      Dim test As Double
      test = 1.23
      MsgBox (test)
  
      Unload Me
  End Sub
  
  Declare Function SetThreadLocale Lib "kernel32" (ByVal Locale As Long) As Long
  Public Const LANG_EN_US = 1033
  
  Public Sub SetAmerican()
      Call SetThreadLocale(LANG_EN_US)
  End Sub
  </code></pre>