23#define DWORD_PTR UINT_PTR
24#define LONG_PTR INT_PTR
25#define ULONG_PTR UINT_PTR
31#if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
32# define _TYPE_ALIGNMENT(type) __alignof(type)
33#elif defined(__GNUC__)
34# define _TYPE_ALIGNMENT(type) __alignof__(type)
43#if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
44#pragma warning(disable:4116)
47#if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
48# define TYPE_ALIGNMENT _TYPE_ALIGNMENT
55#define TEST_TYPE_SIZE(type, size) C_ASSERT(sizeof(type) == size);
58# define TEST_TYPE_ALIGN(type, align) C_ASSERT(TYPE_ALIGNMENT(type) == align);
60# define TEST_TYPE_ALIGN(type, align)
64# define TEST_TARGET_ALIGN(type, align) C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);
65# define TEST_FIELD_ALIGN(type, field, align) C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);
67# define TEST_TARGET_ALIGN(type, align)
68# define TEST_FIELD_ALIGN(type, field, align)
71#define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);
73#define TEST_TARGET_SIZE(type, size) TEST_TYPE_SIZE(*(type)0, size)
74#define TEST_FIELD_SIZE(type, field, size) TEST_TYPE_SIZE((((type*)0)->field), size)
75#define TEST_TYPE_SIGNED(type) C_ASSERT((type) -1 < 0);
76#define TEST_TYPE_UNSIGNED(type) C_ASSERT((type) -1 > 0);
#define TEST_TARGET_SIZE(type, size)
#define TEST_FIELD_OFFSET(type, field, offset)
#define TEST_TARGET_ALIGN(type, align)
static void test_pack(void)
#define TEST_TYPE_SIZE(type, size)
#define TEST_FIELD_SIZE(type, field, size)
#define TEST_TYPE_ALIGN(type, align)
#define TEST_FIELD_ALIGN(type, field, align)
#define TEST_TYPE_UNSIGNED(type)
static void test_pack_DLLGETVERSIONPROC(void)
static void test_pack_DLLVERSIONINFO2(void)
static void test_pack_ASSOCF(void)
static void test_pack_DLLVERSIONINFO(void)
static void test_pack_HUSKEY(void)
static void test_pack_PHUSKEY(void)
HRESULT(CALLBACK * DLLGETVERSIONPROC)(DLLVERSIONINFO *)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags