851 lines
22 KiB
C
851 lines
22 KiB
C
/*++
|
|
|
|
Copyright (c) 1991-1999, Microsoft Corporation All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
edftest.c
|
|
|
|
Abstract:
|
|
|
|
Test module for NLS API EnumDateFormats.
|
|
|
|
NOTE: This code was simply hacked together quickly in order to
|
|
test the different code modules of the NLS component.
|
|
This is NOT meant to be a formal regression test.
|
|
|
|
Revision History:
|
|
|
|
08-02-93 JulieB Created.
|
|
|
|
--*/
|
|
|
|
|
|
|
|
//
|
|
// Include Files.
|
|
//
|
|
|
|
#include "nlstest.h"
|
|
|
|
|
|
|
|
|
|
//
|
|
// Constant Declarations.
|
|
//
|
|
|
|
#define EDF_INVALID_FLAGS ((DWORD)(~(DATE_SHORTDATE | DATE_LONGDATE | \
|
|
DATE_YEARMONTH)))
|
|
|
|
#define NUM_SHORT_DATES_ENGLISH 7
|
|
#define NUM_LONG_DATES_ENGLISH 4
|
|
#define NUM_YEAR_MONTH_ENGLISH 1
|
|
|
|
#define NUM_SHORT_DATES_JAPAN 20
|
|
#define NUM_LONG_DATES_JAPAN 14
|
|
#define NUM_YEAR_MONTH_JAPAN 3
|
|
|
|
|
|
|
|
|
|
//
|
|
// Global Variables.
|
|
//
|
|
|
|
int DateCtr;
|
|
|
|
|
|
|
|
|
|
//
|
|
// Forward Declarations.
|
|
//
|
|
|
|
BOOL
|
|
InitEnumDateFormats();
|
|
|
|
int
|
|
EDF_BadParamCheck();
|
|
|
|
int
|
|
EDF_NormalCase();
|
|
|
|
int
|
|
EDF_Ansi();
|
|
|
|
BOOL
|
|
CALLBACK
|
|
MyFuncDate(
|
|
LPWSTR pStr);
|
|
|
|
BOOL
|
|
CALLBACK
|
|
MyFuncDateA(
|
|
LPSTR pStr);
|
|
|
|
BOOL
|
|
CALLBACK
|
|
MyFuncDateEx(
|
|
LPWSTR pStr,
|
|
CALID CalId);
|
|
|
|
BOOL
|
|
CALLBACK
|
|
MyFuncDateExA(
|
|
LPSTR pStr,
|
|
CALID CalId);
|
|
|
|
|
|
|
|
|
|
//
|
|
// Callback functions.
|
|
//
|
|
|
|
BOOL CALLBACK MyFuncDate(
|
|
LPWSTR pStr)
|
|
{
|
|
if (Verbose)
|
|
{
|
|
while (*pStr)
|
|
{
|
|
printf((*pStr > 0xff) ? "(0x%x)" : "%wc", *pStr);
|
|
pStr++;
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
DateCtr++;
|
|
|
|
return (TRUE);
|
|
}
|
|
|
|
|
|
BOOL CALLBACK MyFuncDateA(
|
|
LPSTR pStr)
|
|
{
|
|
if (Verbose)
|
|
{
|
|
while (*pStr)
|
|
{
|
|
printf((*pStr > 0xff) ? "(0x%x)" : "%c", *pStr);
|
|
pStr++;
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
DateCtr++;
|
|
|
|
return (TRUE);
|
|
}
|
|
|
|
|
|
//
|
|
// Callback functions for EX version.
|
|
//
|
|
|
|
BOOL CALLBACK MyFuncDateEx(
|
|
LPWSTR pStr,
|
|
CALID CalId)
|
|
{
|
|
if (Verbose)
|
|
{
|
|
printf("CalId = %d\n", CalId);
|
|
|
|
while (*pStr)
|
|
{
|
|
printf((*pStr > 0xff) ? "(0x%x)" : "%wc", *pStr);
|
|
pStr++;
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
DateCtr++;
|
|
|
|
return (TRUE);
|
|
}
|
|
|
|
|
|
BOOL CALLBACK MyFuncDateExA(
|
|
LPSTR pStr,
|
|
CALID CalId)
|
|
{
|
|
if (Verbose)
|
|
{
|
|
printf("CalId = %d\n", CalId);
|
|
|
|
while (*pStr)
|
|
{
|
|
printf((*pStr > 0xff) ? "(0x%x)" : "%c", *pStr);
|
|
pStr++;
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
DateCtr++;
|
|
|
|
return (TRUE);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// TestEnumDateFormats
|
|
//
|
|
// Test routine for EnumDateFormatsW API.
|
|
//
|
|
// 08-02-93 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int TestEnumDateFormats()
|
|
{
|
|
int ErrCount = 0; // error count
|
|
|
|
|
|
//
|
|
// Print out what's being done.
|
|
//
|
|
printf("\n\nTESTING EnumDateFormatsW...\n\n");
|
|
|
|
//
|
|
// Initialize global variables.
|
|
//
|
|
if (!InitEnumDateFormats())
|
|
{
|
|
printf("\nABORTED TestEnumDateFormats: Could not Initialize.\n");
|
|
return (1);
|
|
}
|
|
|
|
//
|
|
// Test bad parameters.
|
|
//
|
|
ErrCount += EDF_BadParamCheck();
|
|
|
|
//
|
|
// Test normal cases.
|
|
//
|
|
ErrCount += EDF_NormalCase();
|
|
|
|
//
|
|
// Test Ansi version.
|
|
//
|
|
ErrCount += EDF_Ansi();
|
|
|
|
//
|
|
// Print out result.
|
|
//
|
|
printf("\nEnumDateFormatsW: ERRORS = %d\n", ErrCount);
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (ErrCount);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// InitEnumDateFormats
|
|
//
|
|
// This routine initializes the global variables. If no errors were
|
|
// encountered, then it returns TRUE. Otherwise, it returns FALSE.
|
|
//
|
|
// 08-02-93 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
BOOL InitEnumDateFormats()
|
|
{
|
|
//
|
|
// Initialize date counter.
|
|
//
|
|
DateCtr = 0;
|
|
|
|
//
|
|
// Return success.
|
|
//
|
|
return (TRUE);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// EDF_BadParamCheck
|
|
//
|
|
// This routine passes in bad parameters to the API routines and checks to
|
|
// be sure they are handled properly. The number of errors encountered
|
|
// is returned to the caller.
|
|
//
|
|
// 08-02-93 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int EDF_BadParamCheck()
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
int rc; // return code
|
|
|
|
|
|
//
|
|
// Bad Function.
|
|
//
|
|
|
|
// Variation 1 - bad function
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( NULL,
|
|
0x0409,
|
|
DATE_SHORTDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_PARAMETER,
|
|
"Function invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( NULL,
|
|
0x0409,
|
|
DATE_SHORTDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_PARAMETER,
|
|
"Ex Function invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
|
|
//
|
|
// Bad Locale.
|
|
//
|
|
|
|
// Variation 1 - bad locale
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
(LCID)333,
|
|
DATE_SHORTDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_PARAMETER,
|
|
"Locale invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
(LCID)333,
|
|
DATE_SHORTDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_PARAMETER,
|
|
"Ex Locale invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
|
|
//
|
|
// Invalid Flag.
|
|
//
|
|
|
|
// Variation 1 - dwFlags = invalid
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
EDF_INVALID_FLAGS );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Flag invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
EDF_INVALID_FLAGS );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Ex Flag invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
// Variation 2 - dwFlags = both invalid
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
DATE_SHORTDATE | DATE_LONGDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Flag both invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
DATE_SHORTDATE | DATE_YEARMONTH );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Flag both invalid 2",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
DATE_SHORTDATE | DATE_LONGDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Ex Flag both invalid",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
DATE_SHORTDATE | DATE_YEARMONTH );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Ex Flag both invalid 2",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
// Variation 3 - dwFlags = 2 invalid and Use CP ACP
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
LOCALE_USE_CP_ACP |
|
|
DATE_SHORTDATE | DATE_LONGDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Flag 2 invalid, Use CP ACP",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
LOCALE_USE_CP_ACP |
|
|
DATE_SHORTDATE | DATE_LONGDATE );
|
|
CheckReturnBadParamEnum( rc,
|
|
FALSE,
|
|
ERROR_INVALID_FLAGS,
|
|
"Ex Flag 2 invalid, Use CP ACP",
|
|
&NumErrors,
|
|
DateCtr,
|
|
0 );
|
|
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (NumErrors);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// EDF_NormalCase
|
|
//
|
|
// This routine tests the normal cases of the API routine.
|
|
//
|
|
// 08-02-93 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int EDF_NormalCase()
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
int rc; // return code
|
|
|
|
|
|
if (Verbose)
|
|
{
|
|
printf("\n---- W version ----\n\n");
|
|
}
|
|
|
|
// Variation 1 - short date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"short date English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"Ex short date English",
|
|
&NumErrors );
|
|
|
|
// Variation 2 - short date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0411,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_JAPAN,
|
|
"short date Japan",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0411,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_JAPAN,
|
|
"Ex short date Japan",
|
|
&NumErrors );
|
|
|
|
// Variation 3 - long date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_ENGLISH,
|
|
"long date English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_ENGLISH,
|
|
"Ex long date English",
|
|
&NumErrors );
|
|
|
|
// Variation 4 - long date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0411,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_JAPAN,
|
|
"long date Japan",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0411,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_JAPAN,
|
|
"Ex long date Japan",
|
|
&NumErrors );
|
|
|
|
// Variation 5 - year month
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_ENGLISH,
|
|
"year month English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_ENGLISH,
|
|
"Ex year month English",
|
|
&NumErrors );
|
|
|
|
// Variation 6 - year month
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0411,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_JAPAN,
|
|
"year month Japan",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0411,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_JAPAN,
|
|
"Ex year month Japan",
|
|
&NumErrors );
|
|
|
|
|
|
|
|
//
|
|
// Use CP ACP.
|
|
//
|
|
|
|
// Variation 1 - Use CP ACP
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsW( MyFuncDate,
|
|
0x0409,
|
|
LOCALE_USE_CP_ACP | DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"Use CP ACP, short date English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExW( MyFuncDateEx,
|
|
0x0409,
|
|
LOCALE_USE_CP_ACP | DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"Ex Use CP ACP, short date English",
|
|
&NumErrors );
|
|
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (NumErrors);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// EDF_Ansi
|
|
//
|
|
// This routine tests the Ansi version of the API routine.
|
|
//
|
|
// 08-02-93 JulieB Created.
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
int EDF_Ansi()
|
|
{
|
|
int NumErrors = 0; // error count - to be returned
|
|
int rc; // return code
|
|
|
|
|
|
if (Verbose)
|
|
{
|
|
printf("\n---- A version ----\n\n");
|
|
}
|
|
|
|
// Variation 1 - short date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsA( MyFuncDateA,
|
|
0x0409,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"A version short date English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExA( MyFuncDateExA,
|
|
0x0409,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"Ex A version short date English",
|
|
&NumErrors );
|
|
|
|
// Variation 2 - short date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsA( MyFuncDateA,
|
|
0x0411,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_JAPAN,
|
|
"A version short date Japan",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExA( MyFuncDateExA,
|
|
0x0411,
|
|
DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_JAPAN,
|
|
"Ex A version short date Japan",
|
|
&NumErrors );
|
|
|
|
// Variation 3 - long date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsA( MyFuncDateA,
|
|
0x0409,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_ENGLISH,
|
|
"A version short date English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExA( MyFuncDateExA,
|
|
0x0409,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_ENGLISH,
|
|
"Ex A version short date English",
|
|
&NumErrors );
|
|
|
|
// Variation 4 - long date
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsA( MyFuncDateA,
|
|
0x0411,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_JAPAN,
|
|
"A version long date Japan",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExA( MyFuncDateExA,
|
|
0x0411,
|
|
DATE_LONGDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_LONG_DATES_JAPAN,
|
|
"Ex A version long date Japan",
|
|
&NumErrors );
|
|
|
|
// Variation 5 - year month
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsA( MyFuncDateA,
|
|
0x0409,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_ENGLISH,
|
|
"A version year month English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExA( MyFuncDateExA,
|
|
0x0409,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_ENGLISH,
|
|
"Ex A version year month English",
|
|
&NumErrors );
|
|
|
|
// Variation 5 - year month
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsA( MyFuncDateA,
|
|
0x0411,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_JAPAN,
|
|
"A version year month Japan",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExA( MyFuncDateExA,
|
|
0x0411,
|
|
DATE_YEARMONTH );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_YEAR_MONTH_JAPAN,
|
|
"Ex A version year month Japan",
|
|
&NumErrors );
|
|
|
|
|
|
//
|
|
// Use CP ACP.
|
|
//
|
|
|
|
// Variation 1 - Use CP ACP
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsA( MyFuncDateA,
|
|
0x0409,
|
|
LOCALE_USE_CP_ACP | DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"A version Use CP ACP, short date English",
|
|
&NumErrors );
|
|
|
|
DateCtr = 0;
|
|
rc = EnumDateFormatsExA( MyFuncDateExA,
|
|
0x0409,
|
|
LOCALE_USE_CP_ACP | DATE_SHORTDATE );
|
|
CheckReturnValidEnum( rc,
|
|
TRUE,
|
|
DateCtr,
|
|
NUM_SHORT_DATES_ENGLISH,
|
|
"Ex A version Use CP ACP, short date English",
|
|
&NumErrors );
|
|
|
|
|
|
//
|
|
// Return total number of errors found.
|
|
//
|
|
return (NumErrors);
|
|
}
|