intl/locale/nsWin32Locale.h
author Yoshi Huang <allstars.chh@mozilla.com>
Tue, 03 Nov 2015 09:50:54 +0800
changeset 295784 0e4c4db3b90ff45937cc1eab4b7bbd61f4674326
parent 210363 0732215ac8e87d4f4837a16373ce850766632469
child 370123 51546f9d44b862104805658e4514741d14c7278e
permissions -rw-r--r--
Bug 1209162 - Create OriginAttributes subtypes. IGNORE IDL r=sicking.

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nsWin32Locale_h__
#define nsWin32Locale_h__

#include "nscore.h"
#include "nsString.h"
#include <windows.h>


class nsWin32Locale {
public: 
  static nsresult    GetPlatformLocale(const nsAString& locale, LCID* winLCID); 
  static void        GetXPLocale(LCID winLCID, nsAString& locale);

private:
  // Static class - Don't allow instantiation.
  nsWin32Locale(void) {}

  typedef LCID (WINAPI*LocaleNameToLCIDPtr)(LPCWSTR lpName, DWORD dwFlags);
  typedef int (WINAPI*LCIDToLocaleNamePtr)(LCID Locale, LPWSTR lpName,
                                           int cchName, DWORD dwFlags);

  static LocaleNameToLCIDPtr localeNameToLCID;
  static LCIDToLocaleNamePtr lcidToLocaleName;

  static void initFunctionPointers ();
};

#endif