/* File generated automatically from tools/winapi/test.dat; do not edit! */ /* This file can be copied, modified and distributed without restriction. */ /* * Unit tests for data structure packing */ #define WINVER 0x0501 #define _WIN32_IE 0x0501 #define _WIN32_WINNT 0x0501 #define WINE_NOWINSOCK #include #include "windef.h" #include "winbase.h" #include "wtypes.h" #include "shellapi.h" #include "winuser.h" #include "wingdi.h" #include "shlobj.h" #include "wine/test.h" /*********************************************************************** * Compability macros */ #define DWORD_PTR UINT_PTR #define LONG_PTR INT_PTR #define ULONG_PTR UINT_PTR /*********************************************************************** * Windows API extension */ #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus) # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field) #elif defined(__GNUC__) # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field) #else /* FIXME: Not sure if is possible to do without compiler extension */ #endif #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus) # define _TYPE_ALIGNMENT(type) __alignof(type) #elif defined(__GNUC__) # define _TYPE_ALIGNMENT(type) __alignof__(type) #else /* * FIXME: Not sure if is possible to do without compiler extension * (if type is not just a name that is, if so the normal) * TYPE_ALIGNMENT can be used) */ #endif #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT) # define TYPE_ALIGNMENT _TYPE_ALIGNMENT #endif /*********************************************************************** * Test helper macros */ #ifdef FIELD_ALIGNMENT # define TEST_FIELD_ALIGNMENT(type, field, align) \ ok(FIELD_ALIGNMENT(type, field) == align, \ "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")\n", \ FIELD_ALIGNMENT(type, field)) #else # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0) #endif #define TEST_FIELD_OFFSET(type, field, offset) \ ok(FIELD_OFFSET(type, field) == offset, \ "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")\n", \ FIELD_OFFSET(type, field)) #ifdef _TYPE_ALIGNMENT #define TEST__TYPE_ALIGNMENT(type, align) \ ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", _TYPE_ALIGNMENT(type)) #else # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0) #endif #ifdef TYPE_ALIGNMENT #define TEST_TYPE_ALIGNMENT(type, align) \ ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", TYPE_ALIGNMENT(type)) #else # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0) #endif #define TEST_TYPE_SIZE(type, size) \ ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")\n", sizeof(type)) /*********************************************************************** * Test macros */ #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \ TEST_TYPE_SIZE(field_type, field_size); \ TEST_FIELD_ALIGNMENT(type, field_name, field_align); \ TEST_FIELD_OFFSET(type, field_name, field_offset); \ #define TEST_TYPE(type, size, align) \ TEST_TYPE_ALIGNMENT(type, align); \ TEST_TYPE_SIZE(type, size) #define TEST_TYPE_POINTER(type, size, align) \ TEST__TYPE_ALIGNMENT(*(type)0, align); \ TEST_TYPE_SIZE(*(type)0, size) #define TEST_TYPE_SIGNED(type) \ ok((type) -1 < 0, "(" #type ") -1 < 0\n"); #define TEST_TYPE_UNSIGNED(type) \ ok((type) -1 > 0, "(" #type ") -1 > 0\n"); static void test_pack_BLOB(void) { /* BLOB (pack 4) */ TEST_TYPE(BLOB, 8, 4); TEST_FIELD(BLOB, ULONG, cbSize, 0, 4, 4); TEST_FIELD(BLOB, BYTE *, pBlobData, 4, 4, 4); } static void test_pack_BSTR(void) { /* BSTR */ TEST_TYPE(BSTR, 4, 4); TEST_TYPE_POINTER(BSTR, 2, 2); } static void test_pack_BSTRBLOB(void) { /* BSTRBLOB (pack 4) */ TEST_TYPE(BSTRBLOB, 8, 4); TEST_FIELD(BSTRBLOB, ULONG, cbSize, 0, 4, 4); TEST_FIELD(BSTRBLOB, BYTE *, pData, 4, 4, 4); } static void test_pack_BYTE_BLOB(void) { /* BYTE_BLOB (pack 4) */ TEST_TYPE(BYTE_BLOB, 8, 4); TEST_FIELD(BYTE_BLOB, unsigned long, clSize, 0, 4, 4); TEST_FIELD(BYTE_BLOB, byte[1], abData, 4, 1, 1); } static void test_pack_BYTE_SIZEDARR(void) { /* BYTE_SIZEDARR (pack 4) */ TEST_TYPE(BYTE_SIZEDARR, 8, 4); TEST_FIELD(BYTE_SIZEDARR, unsigned long, clSize, 0, 4, 4); TEST_FIELD(BYTE_SIZEDARR, byte *, pData, 4, 4, 4); } static void test_pack_CLIPDATA(void) { /* CLIPDATA (pack 4) */ TEST_TYPE(CLIPDATA, 12, 4); TEST_FIELD(CLIPDATA, ULONG, cbSize, 0, 4, 4); TEST_FIELD(CLIPDATA, long, ulClipFmt, 4, 4, 4); TEST_FIELD(CLIPDATA, BYTE *, pClipData, 8, 4, 4); } static void test_pack_CLIPFORMAT(void) { /* CLIPFORMAT */ TEST_TYPE(CLIPFORMAT, 2, 2); TEST_TYPE_UNSIGNED(CLIPFORMAT); } static void test_pack_COAUTHIDENTITY(void) { /* COAUTHIDENTITY (pack 4) */ TEST_TYPE(COAUTHIDENTITY, 28, 4); TEST_FIELD(COAUTHIDENTITY, USHORT *, User, 0, 4, 4); TEST_FIELD(COAUTHIDENTITY, ULONG, UserLength, 4, 4, 4); TEST_FIELD(COAUTHIDENTITY, USHORT *, Domain, 8, 4, 4); TEST_FIELD(COAUTHIDENTITY, ULONG, DomainLength, 12, 4, 4); TEST_FIELD(COAUTHIDENTITY, USHORT *, Password, 16, 4, 4); TEST_FIELD(COAUTHIDENTITY, ULONG, PasswordLength, 20, 4, 4); TEST_FIELD(COAUTHIDENTITY, ULONG, Flags, 24, 4, 4); } static void test_pack_COAUTHINFO(void) { /* COAUTHINFO (pack 4) */ TEST_TYPE(COAUTHINFO, 28, 4); TEST_FIELD(COAUTHINFO, DWORD, dwAuthnSvc, 0, 4, 4); TEST_FIELD(COAUTHINFO, DWORD, dwAuthzSvc, 4, 4, 4); TEST_FIELD(COAUTHINFO, LPWSTR, pwszServerPrincName, 8, 4, 4); TEST_FIELD(COAUTHINFO, DWORD, dwAuthnLevel, 12, 4, 4); TEST_FIELD(COAUTHINFO, DWORD, dwImpersonationLevel, 16, 4, 4); TEST_FIELD(COAUTHINFO, COAUTHIDENTITY *, pAuthIdentityData, 20, 4, 4); TEST_FIELD(COAUTHINFO, DWORD, dwCapabilities, 24, 4, 4); } static void test_pack_COSERVERINFO(void) { /* COSERVERINFO (pack 4) */ TEST_TYPE(COSERVERINFO, 16, 4); TEST_FIELD(COSERVERINFO, DWORD, dwReserved1, 0, 4, 4); TEST_FIELD(COSERVERINFO, LPWSTR, pwszName, 4, 4, 4); TEST_FIELD(COSERVERINFO, COAUTHINFO *, pAuthInfo, 8, 4, 4); TEST_FIELD(COSERVERINFO, DWORD, dwReserved2, 12, 4, 4); } static void test_pack_DWORD_SIZEDARR(void) { /* DWORD_SIZEDARR (pack 4) */ TEST_TYPE(DWORD_SIZEDARR, 8, 4); TEST_FIELD(DWORD_SIZEDARR, unsigned long, clSize, 0, 4, 4); TEST_FIELD(DWORD_SIZEDARR, unsigned long *, pData, 4, 4, 4); } static void test_pack_FLAGGED_BYTE_BLOB(void) { /* FLAGGED_BYTE_BLOB (pack 4) */ TEST_TYPE(FLAGGED_BYTE_BLOB, 12, 4); TEST_FIELD(FLAGGED_BYTE_BLOB, unsigned long, fFlags, 0, 4, 4); TEST_FIELD(FLAGGED_BYTE_BLOB, unsigned long, clSize, 4, 4, 4); TEST_FIELD(FLAGGED_BYTE_BLOB, byte[1], abData, 8, 1, 1); } static void test_pack_FLAGGED_WORD_BLOB(void) { /* FLAGGED_WORD_BLOB (pack 4) */ TEST_TYPE(FLAGGED_WORD_BLOB, 12, 4); TEST_FIELD(FLAGGED_WORD_BLOB, unsigned long, fFlags, 0, 4, 4); TEST_FIELD(FLAGGED_WORD_BLOB, unsigned long, clSize, 4, 4, 4); TEST_FIELD(FLAGGED_WORD_BLOB, unsigned short[1], asData, 8, 2, 2); } static void test_pack_HMETAFILEPICT(void) { /* HMETAFILEPICT */ TEST_TYPE(HMETAFILEPICT, 4, 4); } static void test_pack_HYPER_SIZEDARR(void) { /* HYPER_SIZEDARR (pack 4) */ TEST_TYPE(HYPER_SIZEDARR, 8, 4); TEST_FIELD(HYPER_SIZEDARR, unsigned long, clSize, 0, 4, 4); TEST_FIELD(HYPER_SIZEDARR, hyper *, pData, 4, 4, 4); } static void test_pack_LPBLOB(void) { /* LPBLOB */ TEST_TYPE(LPBLOB, 4, 4); TEST_TYPE_POINTER(LPBLOB, 8, 4); } static void test_pack_LPBSTR(void) { /* LPBSTR */ TEST_TYPE(LPBSTR, 4, 4); TEST_TYPE_POINTER(LPBSTR, 4, 4); } static void test_pack_LPBSTRBLOB(void) { /* LPBSTRBLOB */ TEST_TYPE(LPBSTRBLOB, 4, 4); TEST_TYPE_POINTER(LPBSTRBLOB, 8, 4); } static void test_pack_LPCOLESTR(void) { /* LPCOLESTR */ TEST_TYPE(LPCOLESTR, 4, 4); TEST_TYPE_POINTER(LPCOLESTR, 2, 2); } static void test_pack_LPCY(void) { /* LPCY */ TEST_TYPE(LPCY, 4, 4); } static void test_pack_LPDECIMAL(void) { /* LPDECIMAL */ TEST_TYPE(LPDECIMAL, 4, 4); } static void test_pack_LPOLESTR(void) { /* LPOLESTR */ TEST_TYPE(LPOLESTR, 4, 4); TEST_TYPE_POINTER(LPOLESTR, 2, 2); } static void test_pack_OLECHAR(void) { /* OLECHAR */ TEST_TYPE(OLECHAR, 2, 2); } static void test_pack_PROPID(void) { /* PROPID */ TEST_TYPE(PROPID, 4, 4); } static void test_pack_RemHBITMAP(void) { /* RemHBITMAP (pack 4) */ TEST_TYPE(RemHBITMAP, 8, 4); TEST_FIELD(RemHBITMAP, unsigned long, cbData, 0, 4, 4); TEST_FIELD(RemHBITMAP, byte[1], data, 4, 1, 1); } static void test_pack_RemHENHMETAFILE(void) { /* RemHENHMETAFILE (pack 4) */ TEST_TYPE(RemHENHMETAFILE, 8, 4); TEST_FIELD(RemHENHMETAFILE, unsigned long, cbData, 0, 4, 4); TEST_FIELD(RemHENHMETAFILE, byte[1], data, 4, 1, 1); } static void test_pack_RemHGLOBAL(void) { /* RemHGLOBAL (pack 4) */ TEST_TYPE(RemHGLOBAL, 12, 4); TEST_FIELD(RemHGLOBAL, long, fNullHGlobal, 0, 4, 4); TEST_FIELD(RemHGLOBAL, unsigned long, cbData, 4, 4, 4); TEST_FIELD(RemHGLOBAL, byte[1], data, 8, 1, 1); } static void test_pack_RemHMETAFILEPICT(void) { /* RemHMETAFILEPICT (pack 4) */ TEST_TYPE(RemHMETAFILEPICT, 20, 4); TEST_FIELD(RemHMETAFILEPICT, long, mm, 0, 4, 4); TEST_FIELD(RemHMETAFILEPICT, long, xExt, 4, 4, 4); TEST_FIELD(RemHMETAFILEPICT, long, yExt, 8, 4, 4); TEST_FIELD(RemHMETAFILEPICT, unsigned long, cbData, 12, 4, 4); TEST_FIELD(RemHMETAFILEPICT, byte[1], data, 16, 1, 1); } static void test_pack_RemHPALETTE(void) { /* RemHPALETTE (pack 4) */ TEST_TYPE(RemHPALETTE, 8, 4); TEST_FIELD(RemHPALETTE, unsigned long, cbData, 0, 4, 4); TEST_FIELD(RemHPALETTE, byte[1], data, 4, 1, 1); } static void test_pack_SCODE(void) { /* SCODE */ TEST_TYPE(SCODE, 4, 4); } static void test_pack_UP_BYTE_BLOB(void) { /* UP_BYTE_BLOB */ TEST_TYPE(UP_BYTE_BLOB, 4, 4); TEST_TYPE_POINTER(UP_BYTE_BLOB, 8, 4); } static void test_pack_UP_FLAGGED_BYTE_BLOB(void) { /* UP_FLAGGED_BYTE_BLOB */ TEST_TYPE(UP_FLAGGED_BYTE_BLOB, 4, 4); TEST_TYPE_POINTER(UP_FLAGGED_BYTE_BLOB, 12, 4); } static void test_pack_UP_FLAGGED_WORD_BLOB(void) { /* UP_FLAGGED_WORD_BLOB */ TEST_TYPE(UP_FLAGGED_WORD_BLOB, 4, 4); TEST_TYPE_POINTER(UP_FLAGGED_WORD_BLOB, 12, 4); } static void test_pack_VARIANT_BOOL(void) { /* VARIANT_BOOL */ TEST_TYPE(VARIANT_BOOL, 2, 2); TEST_TYPE_SIGNED(VARIANT_BOOL); } static void test_pack_VARTYPE(void) { /* VARTYPE */ TEST_TYPE(VARTYPE, 2, 2); TEST_TYPE_UNSIGNED(VARTYPE); } static void test_pack_WORD_SIZEDARR(void) { /* WORD_SIZEDARR (pack 4) */ TEST_TYPE(WORD_SIZEDARR, 8, 4); TEST_FIELD(WORD_SIZEDARR, unsigned long, clSize, 0, 4, 4); TEST_FIELD(WORD_SIZEDARR, unsigned short *, pData, 4, 4, 4); } static void test_pack_remoteMETAFILEPICT(void) { /* remoteMETAFILEPICT (pack 4) */ TEST_TYPE(remoteMETAFILEPICT, 16, 4); TEST_FIELD(remoteMETAFILEPICT, long, mm, 0, 4, 4); TEST_FIELD(remoteMETAFILEPICT, long, xExt, 4, 4, 4); TEST_FIELD(remoteMETAFILEPICT, long, yExt, 8, 4, 4); TEST_FIELD(remoteMETAFILEPICT, userHMETAFILE *, hMF, 12, 4, 4); } static void test_pack_userBITMAP(void) { /* userBITMAP (pack 4) */ TEST_TYPE(userBITMAP, 28, 4); TEST_FIELD(userBITMAP, LONG, bmType, 0, 4, 4); TEST_FIELD(userBITMAP, LONG, bmWidth, 4, 4, 4); TEST_FIELD(userBITMAP, LONG, bmHeight, 8, 4, 4); TEST_FIELD(userBITMAP, LONG, bmWidthBytes, 12, 4, 4); TEST_FIELD(userBITMAP, WORD, bmPlanes, 16, 2, 2); TEST_FIELD(userBITMAP, WORD, bmBitsPixel, 18, 2, 2); TEST_FIELD(userBITMAP, ULONG, cbSize, 20, 4, 4); TEST_FIELD(userBITMAP, byte[1], pBuffer, 24, 1, 1); } static void test_pack_userCLIPFORMAT(void) { /* userCLIPFORMAT (pack 4) */ TEST_FIELD(userCLIPFORMAT, long, fContext, 0, 4, 4); } static void test_pack_userHBITMAP(void) { /* userHBITMAP (pack 4) */ TEST_FIELD(userHBITMAP, long, fContext, 0, 4, 4); } static void test_pack_userHENHMETAFILE(void) { /* userHENHMETAFILE (pack 4) */ TEST_FIELD(userHENHMETAFILE, long, fContext, 0, 4, 4); } static void test_pack_userHGLOBAL(void) { /* userHGLOBAL (pack 4) */ TEST_FIELD(userHGLOBAL, long, fContext, 0, 4, 4); } static void test_pack_userHMETAFILE(void) { /* userHMETAFILE (pack 4) */ TEST_FIELD(userHMETAFILE, long, fContext, 0, 4, 4); } static void test_pack_userHMETAFILEPICT(void) { /* userHMETAFILEPICT (pack 4) */ TEST_FIELD(userHMETAFILEPICT, long, fContext, 0, 4, 4); } static void test_pack_userHPALETTE(void) { /* userHPALETTE (pack 4) */ TEST_FIELD(userHPALETTE, long, fContext, 0, 4, 4); } static void test_pack_wireBSTR(void) { /* wireBSTR */ TEST_TYPE(wireBSTR, 4, 4); TEST_TYPE_POINTER(wireBSTR, 12, 4); } static void test_pack_wireCLIPFORMAT(void) { /* wireCLIPFORMAT */ TEST_TYPE(wireCLIPFORMAT, 4, 4); } static void test_pack_wireHBITMAP(void) { /* wireHBITMAP */ TEST_TYPE(wireHBITMAP, 4, 4); } static void test_pack_wireHENHMETAFILE(void) { /* wireHENHMETAFILE */ TEST_TYPE(wireHENHMETAFILE, 4, 4); } static void test_pack_wireHGLOBAL(void) { /* wireHGLOBAL */ TEST_TYPE(wireHGLOBAL, 4, 4); } static void test_pack_wireHMETAFILE(void) { /* wireHMETAFILE */ TEST_TYPE(wireHMETAFILE, 4, 4); } static void test_pack_wireHMETAFILEPICT(void) { /* wireHMETAFILEPICT */ TEST_TYPE(wireHMETAFILEPICT, 4, 4); } static void test_pack_wireHPALETTE(void) { /* wireHPALETTE */ TEST_TYPE(wireHPALETTE, 4, 4); } static void test_pack_CLSID(void) { /* CLSID */ TEST_TYPE(CLSID, 16, 4); } static void test_pack_FMTID(void) { /* FMTID */ TEST_TYPE(FMTID, 16, 4); } static void test_pack_GUID(void) { /* GUID (pack 4) */ TEST_TYPE(GUID, 16, 4); TEST_FIELD(GUID, unsigned long, Data1, 0, 4, 4); TEST_FIELD(GUID, unsigned short, Data2, 4, 2, 2); TEST_FIELD(GUID, unsigned short, Data3, 6, 2, 2); TEST_FIELD(GUID, unsigned char[ 8 ], Data4, 8, 8, 1); } static void test_pack_IID(void) { /* IID */ TEST_TYPE(IID, 16, 4); } static void test_pack_LPGUID(void) { /* LPGUID */ TEST_TYPE(LPGUID, 4, 4); TEST_TYPE_POINTER(LPGUID, 16, 4); } static void test_pack_APPBARDATA(void) { /* APPBARDATA (pack 1) */ TEST_TYPE(APPBARDATA, 36, 1); TEST_FIELD(APPBARDATA, DWORD, cbSize, 0, 4, 1); TEST_FIELD(APPBARDATA, HWND, hWnd, 4, 4, 1); TEST_FIELD(APPBARDATA, UINT, uCallbackMessage, 8, 4, 1); TEST_FIELD(APPBARDATA, UINT, uEdge, 12, 4, 1); TEST_FIELD(APPBARDATA, RECT, rc, 16, 16, 1); TEST_FIELD(APPBARDATA, LPARAM, lParam, 32, 4, 1); } static void test_pack_DRAGINFOA(void) { /* DRAGINFOA (pack 1) */ TEST_TYPE(DRAGINFOA, 24, 1); TEST_FIELD(DRAGINFOA, UINT, uSize, 0, 4, 1); TEST_FIELD(DRAGINFOA, POINT, pt, 4, 8, 1); TEST_FIELD(DRAGINFOA, BOOL, fNC, 12, 4, 1); TEST_FIELD(DRAGINFOA, LPSTR, lpFileList, 16, 4, 1); TEST_FIELD(DRAGINFOA, DWORD, grfKeyState, 20, 4, 1); } static void test_pack_DRAGINFOW(void) { /* DRAGINFOW (pack 1) */ TEST_TYPE(DRAGINFOW, 24, 1); TEST_FIELD(DRAGINFOW, UINT, uSize, 0, 4, 1); TEST_FIELD(DRAGINFOW, POINT, pt, 4, 8, 1); TEST_FIELD(DRAGINFOW, BOOL, fNC, 12, 4, 1); TEST_FIELD(DRAGINFOW, LPWSTR, lpFileList, 16, 4, 1); TEST_FIELD(DRAGINFOW, DWORD, grfKeyState, 20, 4, 1); } static void test_pack_FILEOP_FLAGS(void) { /* FILEOP_FLAGS */ TEST_TYPE(FILEOP_FLAGS, 2, 2); TEST_TYPE_UNSIGNED(FILEOP_FLAGS); } static void test_pack_LPDRAGINFOA(void) { /* LPDRAGINFOA */ TEST_TYPE(LPDRAGINFOA, 4, 4); TEST_TYPE_POINTER(LPDRAGINFOA, 24, 1); } static void test_pack_LPDRAGINFOW(void) { /* LPDRAGINFOW */ TEST_TYPE(LPDRAGINFOW, 4, 4); TEST_TYPE_POINTER(LPDRAGINFOW, 24, 1); } static void test_pack_LPSHFILEOPSTRUCTA(void) { /* LPSHFILEOPSTRUCTA */ TEST_TYPE(LPSHFILEOPSTRUCTA, 4, 4); TEST_TYPE_POINTER(LPSHFILEOPSTRUCTA, 30, 1); } static void test_pack_LPSHFILEOPSTRUCTW(void) { /* LPSHFILEOPSTRUCTW */ TEST_TYPE(LPSHFILEOPSTRUCTW, 4, 4); TEST_TYPE_POINTER(LPSHFILEOPSTRUCTW, 30, 1); } static void test_pack_LPSHNAMEMAPPINGA(void) { /* LPSHNAMEMAPPINGA */ TEST_TYPE(LPSHNAMEMAPPINGA, 4, 4); TEST_TYPE_POINTER(LPSHNAMEMAPPINGA, 16, 1); } static void test_pack_LPSHNAMEMAPPINGW(void) { /* LPSHNAMEMAPPINGW */ TEST_TYPE(LPSHNAMEMAPPINGW, 4, 4); TEST_TYPE_POINTER(LPSHNAMEMAPPINGW, 16, 1); } static void test_pack_NOTIFYICONDATAA(void) { /* NOTIFYICONDATAA (pack 1) */ TEST_FIELD(NOTIFYICONDATAA, DWORD, cbSize, 0, 4, 1); TEST_FIELD(NOTIFYICONDATAA, HWND, hWnd, 4, 4, 1); TEST_FIELD(NOTIFYICONDATAA, UINT, uID, 8, 4, 1); TEST_FIELD(NOTIFYICONDATAA, UINT, uFlags, 12, 4, 1); TEST_FIELD(NOTIFYICONDATAA, UINT, uCallbackMessage, 16, 4, 1); TEST_FIELD(NOTIFYICONDATAA, HICON, hIcon, 20, 4, 1); TEST_FIELD(NOTIFYICONDATAA, CHAR[128], szTip, 24, 128, 1); TEST_FIELD(NOTIFYICONDATAA, DWORD, dwState, 152, 4, 1); TEST_FIELD(NOTIFYICONDATAA, DWORD, dwStateMask, 156, 4, 1); TEST_FIELD(NOTIFYICONDATAA, CHAR[256], szInfo, 160, 256, 1); } static void test_pack_NOTIFYICONDATAW(void) { /* NOTIFYICONDATAW (pack 1) */ TEST_FIELD(NOTIFYICONDATAW, DWORD, cbSize, 0, 4, 1); TEST_FIELD(NOTIFYICONDATAW, HWND, hWnd, 4, 4, 1); TEST_FIELD(NOTIFYICONDATAW, UINT, uID, 8, 4, 1); TEST_FIELD(NOTIFYICONDATAW, UINT, uFlags, 12, 4, 1); TEST_FIELD(NOTIFYICONDATAW, UINT, uCallbackMessage, 16, 4, 1); TEST_FIELD(NOTIFYICONDATAW, HICON, hIcon, 20, 4, 1); TEST_FIELD(NOTIFYICONDATAW, WCHAR[128], szTip, 24, 256, 1); TEST_FIELD(NOTIFYICONDATAW, DWORD, dwState, 280, 4, 1); TEST_FIELD(NOTIFYICONDATAW, DWORD, dwStateMask, 284, 4, 1); TEST_FIELD(NOTIFYICONDATAW, WCHAR[256], szInfo, 288, 512, 1); } static void test_pack_PAPPBARDATA(void) { /* PAPPBARDATA */ TEST_TYPE(PAPPBARDATA, 4, 4); TEST_TYPE_POINTER(PAPPBARDATA, 36, 1); } static void test_pack_PNOTIFYICONDATAA(void) { /* PNOTIFYICONDATAA */ TEST_TYPE(PNOTIFYICONDATAA, 4, 4); } static void test_pack_PNOTIFYICONDATAW(void) { /* PNOTIFYICONDATAW */ TEST_TYPE(PNOTIFYICONDATAW, 4, 4); } static void test_pack_PRINTEROP_FLAGS(void) { /* PRINTEROP_FLAGS */ TEST_TYPE(PRINTEROP_FLAGS, 2, 2); TEST_TYPE_UNSIGNED(PRINTEROP_FLAGS); } static void test_pack_SHFILEINFOA(void) { /* SHFILEINFOA (pack 1) */ TEST_TYPE(SHFILEINFOA, 352, 1); TEST_FIELD(SHFILEINFOA, HICON, hIcon, 0, 4, 1); TEST_FIELD(SHFILEINFOA, int, iIcon, 4, 4, 1); TEST_FIELD(SHFILEINFOA, DWORD, dwAttributes, 8, 4, 1); TEST_FIELD(SHFILEINFOA, CHAR[MAX_PATH], szDisplayName, 12, 260, 1); TEST_FIELD(SHFILEINFOA, CHAR[80], szTypeName, 272, 80, 1); } static void test_pack_SHFILEINFOW(void) { /* SHFILEINFOW (pack 1) */ TEST_TYPE(SHFILEINFOW, 692, 1); TEST_FIELD(SHFILEINFOW, HICON, hIcon, 0, 4, 1); TEST_FIELD(SHFILEINFOW, int, iIcon, 4, 4, 1); TEST_FIELD(SHFILEINFOW, DWORD, dwAttributes, 8, 4, 1); TEST_FIELD(SHFILEINFOW, WCHAR[MAX_PATH], szDisplayName, 12, 520, 1); TEST_FIELD(SHFILEINFOW, WCHAR[80], szTypeName, 532, 160, 1); } static void test_pack_SHFILEOPSTRUCTA(void) { /* SHFILEOPSTRUCTA (pack 1) */ TEST_TYPE(SHFILEOPSTRUCTA, 30, 1); TEST_FIELD(SHFILEOPSTRUCTA, HWND, hwnd, 0, 4, 1); TEST_FIELD(SHFILEOPSTRUCTA, UINT, wFunc, 4, 4, 1); TEST_FIELD(SHFILEOPSTRUCTA, LPCSTR, pFrom, 8, 4, 1); TEST_FIELD(SHFILEOPSTRUCTA, LPCSTR, pTo, 12, 4, 1); TEST_FIELD(SHFILEOPSTRUCTA, FILEOP_FLAGS, fFlags, 16, 2, 1); TEST_FIELD(SHFILEOPSTRUCTA, BOOL, fAnyOperationsAborted, 18, 4, 1); TEST_FIELD(SHFILEOPSTRUCTA, LPVOID, hNameMappings, 22, 4, 1); TEST_FIELD(SHFILEOPSTRUCTA, LPCSTR, lpszProgressTitle, 26, 4, 1); } static void test_pack_SHFILEOPSTRUCTW(void) { /* SHFILEOPSTRUCTW (pack 1) */ TEST_TYPE(SHFILEOPSTRUCTW, 30, 1); TEST_FIELD(SHFILEOPSTRUCTW, HWND, hwnd, 0, 4, 1); TEST_FIELD(SHFILEOPSTRUCTW, UINT, wFunc, 4, 4, 1); TEST_FIELD(SHFILEOPSTRUCTW, LPCWSTR, pFrom, 8, 4, 1); TEST_FIELD(SHFILEOPSTRUCTW, LPCWSTR, pTo, 12, 4, 1); TEST_FIELD(SHFILEOPSTRUCTW, FILEOP_FLAGS, fFlags, 16, 2, 1); TEST_FIELD(SHFILEOPSTRUCTW, BOOL, fAnyOperationsAborted, 18, 4, 1); TEST_FIELD(SHFILEOPSTRUCTW, LPVOID, hNameMappings, 22, 4, 1); TEST_FIELD(SHFILEOPSTRUCTW, LPCWSTR, lpszProgressTitle, 26, 4, 1); } static void test_pack_SHNAMEMAPPINGA(void) { /* SHNAMEMAPPINGA (pack 1) */ TEST_TYPE(SHNAMEMAPPINGA, 16, 1); TEST_FIELD(SHNAMEMAPPINGA, LPSTR, pszOldPath, 0, 4, 1); TEST_FIELD(SHNAMEMAPPINGA, LPSTR, pszNewPath, 4, 4, 1); TEST_FIELD(SHNAMEMAPPINGA, int, cchOldPath, 8, 4, 1); TEST_FIELD(SHNAMEMAPPINGA, int, cchNewPath, 12, 4, 1); } static void test_pack_SHNAMEMAPPINGW(void) { /* SHNAMEMAPPINGW (pack 1) */ TEST_TYPE(SHNAMEMAPPINGW, 16, 1); TEST_FIELD(SHNAMEMAPPINGW, LPWSTR, pszOldPath, 0, 4, 1); TEST_FIELD(SHNAMEMAPPINGW, LPWSTR, pszNewPath, 4, 4, 1); TEST_FIELD(SHNAMEMAPPINGW, int, cchOldPath, 8, 4, 1); TEST_FIELD(SHNAMEMAPPINGW, int, cchNewPath, 12, 4, 1); } static void test_pack_AUTO_SCROLL_DATA(void) { /* AUTO_SCROLL_DATA (pack 4) */ TEST_TYPE(AUTO_SCROLL_DATA, 48, 4); TEST_FIELD(AUTO_SCROLL_DATA, int, iNextSample, 0, 4, 4); TEST_FIELD(AUTO_SCROLL_DATA, DWORD, dwLastScroll, 4, 4, 4); TEST_FIELD(AUTO_SCROLL_DATA, BOOL, bFull, 8, 4, 4); TEST_FIELD(AUTO_SCROLL_DATA, POINT[NUM_POINTS], pts, 12, 24, 4); TEST_FIELD(AUTO_SCROLL_DATA, DWORD[NUM_POINTS], dwTimes, 36, 12, 4); } static void test_pack_BFFCALLBACK(void) { /* BFFCALLBACK */ TEST_TYPE(BFFCALLBACK, 4, 4); } static void test_pack_CABINETSTATE(void) { /* CABINETSTATE (pack 1) */ TEST_TYPE(CABINETSTATE, 10, 1); TEST_FIELD(CABINETSTATE, WORD, cLength, 0, 2, 1); TEST_FIELD(CABINETSTATE, WORD, nVersion, 2, 2, 1); TEST_FIELD(CABINETSTATE, UINT, fMenuEnumFilter, 6, 4, 1); } static void test_pack_CIDA(void) { /* CIDA (pack 1) */ TEST_TYPE(CIDA, 8, 1); TEST_FIELD(CIDA, UINT, cidl, 0, 4, 1); TEST_FIELD(CIDA, UINT[1], aoffset, 4, 4, 1); } static void test_pack_DROPFILES(void) { /* DROPFILES (pack 1) */ TEST_TYPE(DROPFILES, 20, 1); TEST_FIELD(DROPFILES, DWORD, pFiles, 0, 4, 1); TEST_FIELD(DROPFILES, POINT, pt, 4, 8, 1); TEST_FIELD(DROPFILES, BOOL, fNC, 12, 4, 1); TEST_FIELD(DROPFILES, BOOL, fWide, 16, 4, 1); } static void test_pack_FILEDESCRIPTORA(void) { /* FILEDESCRIPTORA (pack 1) */ TEST_TYPE(FILEDESCRIPTORA, 332, 1); TEST_FIELD(FILEDESCRIPTORA, DWORD, dwFlags, 0, 4, 1); TEST_FIELD(FILEDESCRIPTORA, CLSID, clsid, 4, 16, 1); TEST_FIELD(FILEDESCRIPTORA, SIZEL, sizel, 20, 8, 1); TEST_FIELD(FILEDESCRIPTORA, POINTL, pointl, 28, 8, 1); TEST_FIELD(FILEDESCRIPTORA, DWORD, dwFileAttributes, 36, 4, 1); TEST_FIELD(FILEDESCRIPTORA, FILETIME, ftCreationTime, 40, 8, 1); TEST_FIELD(FILEDESCRIPTORA, FILETIME, ftLastAccessTime, 48, 8, 1); TEST_FIELD(FILEDESCRIPTORA, FILETIME, ftLastWriteTime, 56, 8, 1); TEST_FIELD(FILEDESCRIPTORA, DWORD, nFileSizeHigh, 64, 4, 1); TEST_FIELD(FILEDESCRIPTORA, DWORD, nFileSizeLow, 68, 4, 1); TEST_FIELD(FILEDESCRIPTORA, CHAR[MAX_PATH], cFileName, 72, 260, 1); } static void test_pack_FILEDESCRIPTORW(void) { /* FILEDESCRIPTORW (pack 1) */ TEST_TYPE(FILEDESCRIPTORW, 592, 1); TEST_FIELD(FILEDESCRIPTORW, DWORD, dwFlags, 0, 4, 1); TEST_FIELD(FILEDESCRIPTORW, CLSID, clsid, 4, 16, 1); TEST_FIELD(FILEDESCRIPTORW, SIZEL, sizel, 20, 8, 1); TEST_FIELD(FILEDESCRIPTORW, POINTL, pointl, 28, 8, 1); TEST_FIELD(FILEDESCRIPTORW, DWORD, dwFileAttributes, 36, 4, 1); TEST_FIELD(FILEDESCRIPTORW, FILETIME, ftCreationTime, 40, 8, 1); TEST_FIELD(FILEDESCRIPTORW, FILETIME, ftLastAccessTime, 48, 8, 1); TEST_FIELD(FILEDESCRIPTORW, FILETIME, ftLastWriteTime, 56, 8, 1); TEST_FIELD(FILEDESCRIPTORW, DWORD, nFileSizeHigh, 64, 4, 1); TEST_FIELD(FILEDESCRIPTORW, DWORD, nFileSizeLow, 68, 4, 1); TEST_FIELD(FILEDESCRIPTORW, WCHAR[MAX_PATH], cFileName, 72, 520, 1); } static void test_pack_FILEGROUPDESCRIPTORA(void) { /* FILEGROUPDESCRIPTORA (pack 1) */ TEST_TYPE(FILEGROUPDESCRIPTORA, 336, 1); TEST_FIELD(FILEGROUPDESCRIPTORA, UINT, cItems, 0, 4, 1); TEST_FIELD(FILEGROUPDESCRIPTORA, FILEDESCRIPTORA[1], fgd, 4, 332, 1); } static void test_pack_FILEGROUPDESCRIPTORW(void) { /* FILEGROUPDESCRIPTORW (pack 1) */ TEST_TYPE(FILEGROUPDESCRIPTORW, 596, 1); TEST_FIELD(FILEGROUPDESCRIPTORW, UINT, cItems, 0, 4, 1); TEST_FIELD(FILEGROUPDESCRIPTORW, FILEDESCRIPTORW[1], fgd, 4, 592, 1); } static void test_pack_IFileSystemBindData(void) { /* IFileSystemBindData */ } static void test_pack_IFileSystemBindDataVtbl(void) { /* IFileSystemBindDataVtbl */ } static void test_pack_IShellChangeNotify(void) { /* IShellChangeNotify */ } static void test_pack_IShellIcon(void) { /* IShellIcon */ } static void test_pack_LPCABINETSTATE(void) { /* LPCABINETSTATE */ TEST_TYPE(LPCABINETSTATE, 4, 4); TEST_TYPE_POINTER(LPCABINETSTATE, 10, 1); } static void test_pack_LPDROPFILES(void) { /* LPDROPFILES */ TEST_TYPE(LPDROPFILES, 4, 4); TEST_TYPE_POINTER(LPDROPFILES, 20, 1); } static void test_pack_LPFILEDESCRIPTORA(void) { /* LPFILEDESCRIPTORA */ TEST_TYPE(LPFILEDESCRIPTORA, 4, 4); TEST_TYPE_POINTER(LPFILEDESCRIPTORA, 332, 1); } static void test_pack_LPFILEDESCRIPTORW(void) { /* LPFILEDESCRIPTORW */ TEST_TYPE(LPFILEDESCRIPTORW, 4, 4); TEST_TYPE_POINTER(LPFILEDESCRIPTORW, 592, 1); } static void test_pack_LPFILEGROUPDESCRIPTORA(void) { /* LPFILEGROUPDESCRIPTORA */ TEST_TYPE(LPFILEGROUPDESCRIPTORA, 4, 4); TEST_TYPE_POINTER(LPFILEGROUPDESCRIPTORA, 336, 1); } static void test_pack_LPFILEGROUPDESCRIPTORW(void) { /* LPFILEGROUPDESCRIPTORW */ TEST_TYPE(LPFILEGROUPDESCRIPTORW, 4, 4); TEST_TYPE_POINTER(LPFILEGROUPDESCRIPTORW, 596, 1); } static void test_pack_LPIDA(void) { /* LPIDA */ TEST_TYPE(LPIDA, 4, 4); TEST_TYPE_POINTER(LPIDA, 8, 1); } static void test_pack_LPSHChangeDWORDAsIDList(void) { /* LPSHChangeDWORDAsIDList */ TEST_TYPE(LPSHChangeDWORDAsIDList, 4, 4); TEST_TYPE_POINTER(LPSHChangeDWORDAsIDList, 12, 1); } static void test_pack_LPSHChangeProductKeyAsIDList(void) { /* LPSHChangeProductKeyAsIDList */ TEST_TYPE(LPSHChangeProductKeyAsIDList, 4, 4); TEST_TYPE_POINTER(LPSHChangeProductKeyAsIDList, 82, 1); } static void test_pack_LPSHDESCRIPTIONID(void) { /* LPSHDESCRIPTIONID */ TEST_TYPE(LPSHDESCRIPTIONID, 4, 4); TEST_TYPE_POINTER(LPSHDESCRIPTIONID, 20, 1); } static void test_pack_LPSHELLFLAGSTATE(void) { /* LPSHELLFLAGSTATE */ TEST_TYPE(LPSHELLFLAGSTATE, 4, 4); TEST_TYPE_POINTER(LPSHELLFLAGSTATE, 2, 1); } static void test_pack_LPSHELLSTATE(void) { /* LPSHELLSTATE */ TEST_TYPE(LPSHELLSTATE, 4, 4); TEST_TYPE_POINTER(LPSHELLSTATE, 29, 1); } static void test_pack_SHChangeDWORDAsIDList(void) { /* SHChangeDWORDAsIDList (pack 1) */ TEST_TYPE(SHChangeDWORDAsIDList, 12, 1); TEST_FIELD(SHChangeDWORDAsIDList, USHORT, cb, 0, 2, 1); TEST_FIELD(SHChangeDWORDAsIDList, DWORD, dwItem1, 2, 4, 1); TEST_FIELD(SHChangeDWORDAsIDList, DWORD, dwItem2, 6, 4, 1); TEST_FIELD(SHChangeDWORDAsIDList, USHORT, cbZero, 10, 2, 1); } static void test_pack_SHChangeNotifyEntry(void) { /* SHChangeNotifyEntry (pack 1) */ } static void test_pack_SHChangeProductKeyAsIDList(void) { /* SHChangeProductKeyAsIDList (pack 1) */ TEST_TYPE(SHChangeProductKeyAsIDList, 82, 1); TEST_FIELD(SHChangeProductKeyAsIDList, USHORT, cb, 0, 2, 1); TEST_FIELD(SHChangeProductKeyAsIDList, WCHAR[39], wszProductKey, 2, 78, 1); TEST_FIELD(SHChangeProductKeyAsIDList, USHORT, cbZero, 80, 2, 1); } static void test_pack_SHDESCRIPTIONID(void) { /* SHDESCRIPTIONID (pack 1) */ TEST_TYPE(SHDESCRIPTIONID, 20, 1); TEST_FIELD(SHDESCRIPTIONID, DWORD, dwDescriptionId, 0, 4, 1); TEST_FIELD(SHDESCRIPTIONID, CLSID, clsid, 4, 16, 1); } static void test_pack_SHELLFLAGSTATE(void) { /* SHELLFLAGSTATE (pack 1) */ TEST_TYPE(SHELLFLAGSTATE, 2, 1); } static void test_pack_SHELLSTATE(void) { /* SHELLSTATE (pack 1) */ TEST_TYPE(SHELLSTATE, 29, 1); TEST_FIELD(SHELLSTATE, DWORD, dwWin95Unused, 3, 4, 1); TEST_FIELD(SHELLSTATE, UINT, uWin95Unused, 7, 4, 1); TEST_FIELD(SHELLSTATE, LONG, lParamSort, 11, 4, 1); TEST_FIELD(SHELLSTATE, int, iSortDirection, 15, 4, 1); TEST_FIELD(SHELLSTATE, UINT, version, 19, 4, 1); TEST_FIELD(SHELLSTATE, UINT, uNotUsed, 23, 4, 1); } static void test_pack_SHELLVIEWID(void) { /* SHELLVIEWID */ TEST_TYPE(SHELLVIEWID, 16, 4); } static void test_pack_SHELLVIEWPROC(void) { /* SHELLVIEWPROC */ TEST_TYPE(SHELLVIEWPROC, 4, 4); } static void test_pack(void) { test_pack_APPBARDATA(); test_pack_AUTO_SCROLL_DATA(); test_pack_BFFCALLBACK(); test_pack_BLOB(); test_pack_BSTR(); test_pack_BSTRBLOB(); test_pack_BYTE_BLOB(); test_pack_BYTE_SIZEDARR(); test_pack_CABINETSTATE(); test_pack_CIDA(); test_pack_CLIPDATA(); test_pack_CLIPFORMAT(); test_pack_CLSID(); test_pack_COAUTHIDENTITY(); test_pack_COAUTHINFO(); test_pack_COSERVERINFO(); test_pack_DRAGINFOA(); test_pack_DRAGINFOW(); test_pack_DROPFILES(); test_pack_DWORD_SIZEDARR(); test_pack_FILEDESCRIPTORA(); test_pack_FILEDESCRIPTORW(); test_pack_FILEGROUPDESCRIPTORA(); test_pack_FILEGROUPDESCRIPTORW(); test_pack_FILEOP_FLAGS(); test_pack_FLAGGED_BYTE_BLOB(); test_pack_FLAGGED_WORD_BLOB(); test_pack_FMTID(); test_pack_GUID(); test_pack_HMETAFILEPICT(); test_pack_HYPER_SIZEDARR(); test_pack_IFileSystemBindData(); test_pack_IFileSystemBindDataVtbl(); test_pack_IID(); test_pack_IShellChangeNotify(); test_pack_IShellIcon(); test_pack_LPBLOB(); test_pack_LPBSTR(); test_pack_LPBSTRBLOB(); test_pack_LPCABINETSTATE(); test_pack_LPCOLESTR(); test_pack_LPCY(); test_pack_LPDECIMAL(); test_pack_LPDRAGINFOA(); test_pack_LPDRAGINFOW(); test_pack_LPDROPFILES(); test_pack_LPFILEDESCRIPTORA(); test_pack_LPFILEDESCRIPTORW(); test_pack_LPFILEGROUPDESCRIPTORA(); test_pack_LPFILEGROUPDESCRIPTORW(); test_pack_LPGUID(); test_pack_LPIDA(); test_pack_LPOLESTR(); test_pack_LPSHChangeDWORDAsIDList(); test_pack_LPSHChangeProductKeyAsIDList(); test_pack_LPSHDESCRIPTIONID(); test_pack_LPSHELLFLAGSTATE(); test_pack_LPSHELLSTATE(); test_pack_LPSHFILEOPSTRUCTA(); test_pack_LPSHFILEOPSTRUCTW(); test_pack_LPSHNAMEMAPPINGA(); test_pack_LPSHNAMEMAPPINGW(); test_pack_NOTIFYICONDATAA(); test_pack_NOTIFYICONDATAW(); test_pack_OLECHAR(); test_pack_PAPPBARDATA(); test_pack_PNOTIFYICONDATAA(); test_pack_PNOTIFYICONDATAW(); test_pack_PRINTEROP_FLAGS(); test_pack_PROPID(); test_pack_RemHBITMAP(); test_pack_RemHENHMETAFILE(); test_pack_RemHGLOBAL(); test_pack_RemHMETAFILEPICT(); test_pack_RemHPALETTE(); test_pack_SCODE(); test_pack_SHChangeDWORDAsIDList(); test_pack_SHChangeNotifyEntry(); test_pack_SHChangeProductKeyAsIDList(); test_pack_SHDESCRIPTIONID(); test_pack_SHELLFLAGSTATE(); test_pack_SHELLSTATE(); test_pack_SHELLVIEWID(); test_pack_SHELLVIEWPROC(); test_pack_SHFILEINFOA(); test_pack_SHFILEINFOW(); test_pack_SHFILEOPSTRUCTA(); test_pack_SHFILEOPSTRUCTW(); test_pack_SHNAMEMAPPINGA(); test_pack_SHNAMEMAPPINGW(); test_pack_UP_BYTE_BLOB(); test_pack_UP_FLAGGED_BYTE_BLOB(); test_pack_UP_FLAGGED_WORD_BLOB(); test_pack_VARIANT_BOOL(); test_pack_VARTYPE(); test_pack_WORD_SIZEDARR(); test_pack_remoteMETAFILEPICT(); test_pack_userBITMAP(); test_pack_userCLIPFORMAT(); test_pack_userHBITMAP(); test_pack_userHENHMETAFILE(); test_pack_userHGLOBAL(); test_pack_userHMETAFILE(); test_pack_userHMETAFILEPICT(); test_pack_userHPALETTE(); test_pack_wireBSTR(); test_pack_wireCLIPFORMAT(); test_pack_wireHBITMAP(); test_pack_wireHENHMETAFILE(); test_pack_wireHGLOBAL(); test_pack_wireHMETAFILE(); test_pack_wireHMETAFILEPICT(); test_pack_wireHPALETTE(); } START_TEST(generated) { test_pack(); }