#ifdef _MSC_VER
#pragma once
#endif // _MSC_VER
#ifndef _APISETSTRING_
#define _APISETSTRING_
#include <apiset.h>
#include <apisetcconv.h>
#include <minwindef.h>
#include <winnls.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#if (WINVER >= 0x0600)
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
int
(
_In_opt_ LPCWSTR lpLocaleName,
_In_NLS_string_(cchCount1) LPCWCH lpString1,
_In_NLS_string_(cchCount2) LPCWCH lpString2,
_Reserved_ LPNLSVERSIONINFO lpVersionInformation,
_Reserved_ LPVOID lpReserved,
);
int
(
_In_NLS_string_(cchCount1) LPCWCH lpString1,
_In_NLS_string_(cchCount2) LPCWCH lpString2,
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif //(WINVER >= 0x0600)
#pragma region Desktop or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
int
(
_In_NLS_string_(cchCount1) PCNZWCH lpString1,
_In_NLS_string_(cchCount2) PCNZWCH lpString2,
);
#ifdef UNICODE
#define CompareString CompareStringW
#endif
int
(
_In_NLS_string_(cchSrc) LPCWCH lpSrcStr,
_Out_writes_opt_(cchDest) LPWSTR lpDestStr,
);
#ifdef UNICODE
#define FoldString FoldStringW
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
(
_In_NLS_string_(cchSrc) LPCWCH lpSrcStr,
_Out_writes_(cchSrc) LPWORD lpCharType
);
#ifdef UNICODE
#define GetStringTypeEx GetStringTypeExW
#endif
(
_In_NLS_string_(cchSrc) LPCWCH lpSrcStr,
);
_Success_(return != 0)
_When_((cbMultiByte == -1) && (cchWideChar != 0), _Post_equal_to_(_String_length_(lpWideCharStr)+1))
int
(
_In_NLS_string_(cbMultiByte) LPCCH lpMultiByteStr,
_Out_writes_to_opt_(cchWideChar,return) LPWSTR lpWideCharStr,
);
_Success_(return != 0)
_When_((cchWideChar == -1) && (cbMultiByte != 0), _Post_equal_to_(_String_length_(lpMultiByteStr)+1))
int
(
_In_NLS_string_(cchWideChar) LPCWCH lpWideCharStr,
_Out_writes_bytes_to_opt_(cbMultiByte,return) LPSTR lpMultiByteStr,
_In_opt_ LPCCH lpDefaultChar,
_Out_opt_ LPBOOL lpUsedDefaultChar
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef __cplusplus
}
#endif
#endif // _APISETSTRING_