intl/locale/public/nsWin32Locale.h
author Gervase Markham <gerv@gerv.net>
Mon, 21 May 2012 12:12:37 +0100
changeset 94475 f4157e8c410708d76703f19e4dfb61859bfe32d8
parent 68834 a45b194f7d11f3d88de99090d440cdd9be22cdb1
permissions -rw-r--r--
Bug 716478 - update licence to MPL 2.

/* -*- 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