17#ifndef PHP_WIN32_CODEPAGE_H
18#define PHP_WIN32_CODEPAGE_H
25# define PW32CP __declspec(dllexport)
27# define PW32CP __declspec(dllimport)
30#define PHP_WIN32_CP_IGNORE_LEN (0)
31#define PHP_WIN32_CP_IGNORE_LEN_P ((size_t *)-1)
45#define php_win32_cp_setup() php_win32_cp_do_setup(NULL)
47#define php_win32_cp_update() php_win32_cp_do_update(NULL)
55#define php_win32_cp_cli_setup() php_win32_cp_cli_do_setup(0)
56#define php_win32_cp_cli_update() php_win32_cp_cli_do_setup(0)
58#define php_win32_cp_cli_restore() php_win32_cp_cli_do_restore(0)
64#define php_win32_cp_utf8_to_w(in) php_win32_cp_conv_utf8_to_w(in, PHP_WIN32_CP_IGNORE_LEN, PHP_WIN32_CP_IGNORE_LEN_P)
66#define php_win32_cp_cur_to_w(in) php_win32_cp_conv_cur_to_w(in, PHP_WIN32_CP_IGNORE_LEN, PHP_WIN32_CP_IGNORE_LEN_P)
68#define php_win32_cp_ascii_to_w(in) php_win32_cp_conv_ascii_to_w(in, PHP_WIN32_CP_IGNORE_LEN, PHP_WIN32_CP_IGNORE_LEN_P)
71#define php_win32_cp_w_to_utf8(in) php_win32_cp_conv_w_to_utf8(in, PHP_WIN32_CP_IGNORE_LEN, PHP_WIN32_CP_IGNORE_LEN_P)
73#define php_win32_cp_w_to_cur(in) php_win32_cp_conv_w_to_cur(in, PHP_WIN32_CP_IGNORE_LEN, PHP_WIN32_CP_IGNORE_LEN_P)
79__forceinline
static wchar_t *php_win32_cp_conv_any_to_w(
const char* in,
size_t in_len,
size_t *out_len)
115#define php_win32_cp_any_to_w(in) php_win32_cp_conv_any_to_w(in, PHP_WIN32_CP_IGNORE_LEN, PHP_WIN32_CP_IGNORE_LEN_P)
120__forceinline
static char *php_win32_cp_conv_w_to_any(
const wchar_t* in,
size_t in_len,
size_t *out_len)
124#define php_win32_cp_w_to_any(in) php_win32_cp_conv_w_to_any(in, PHP_WIN32_CP_IGNORE_LEN, PHP_WIN32_CP_IGNORE_LEN_P)
126#define PHP_WIN32_CP_W_TO_ANY_ARRAY(aw, aw_len, aa, aa_len) do { \
129 aa = (char **) malloc(aw_len * sizeof(char *)); \
133 for (i = 0; i < aw_len; i++) { \
134 aa[i] = php_win32_cp_w_to_any(aw[i]); \
139#define PHP_WIN32_CP_FREE_ARRAY(a, a_len) do { \
141 for (i = 0; i < a_len; i++) { \
PW32CP wchar_t * php_win32_cp_conv_to_w(DWORD in_cp, DWORD flags, const char *in, size_t in_len, size_t *out_len)
PW32CP const struct php_win32_cp * php_win32_cp_do_setup(const char *)
PW32CP BOOL php_win32_cp_use_unicode(void)
PW32CP const struct php_win32_cp * php_win32_cp_shutdown(void)
PW32CP wchar_t * php_win32_cp_conv_ascii_to_w(const char *in, size_t in_len, size_t *out_len)
PW32CP wchar_t * php_win32_cp_conv_cur_to_w(const char *in, size_t in_len, size_t *out_len)
PW32CP const struct php_win32_cp * php_win32_cp_get_current(void)
PW32CP const struct php_win32_cp * php_win32_cp_set_by_id(DWORD id)
PW32CP char * php_win32_cp_conv_w_to_cur(const wchar_t *in, size_t in_len, size_t *out_len)
PW32CP const struct php_win32_cp * php_win32_cp_get_orig(void)
PW32CP wchar_t * php_win32_cp_conv_utf8_to_w(const char *in, size_t in_len, size_t *out_len)
PW32CP const struct php_win32_cp * php_win32_cp_cli_do_restore(DWORD)
PW32CP const struct php_win32_cp * php_win32_cp_do_update(const char *)
PW32CP const struct php_win32_cp * php_win32_cp_get_by_enc(const char *enc)
PW32CP char * php_win32_cp_conv_from_w(DWORD out_cp, DWORD flags, const wchar_t *in, size_t in_len, size_t *out_len)
PW32CP const struct php_win32_cp * php_win32_cp_get_by_id(DWORD id)
PW32CP const struct php_win32_cp * php_win32_cp_cli_do_setup(DWORD)
PW32CP wchar_t * php_win32_cp_env_any_to_w(const char *env)
PW32CP char * php_win32_cp_conv_w_to_utf8(const wchar_t *in, size_t in_len, size_t *out_len)