1 /* Unit test suite for SHLWAPI Class ID functions
3 * Copyright 2003 Jon Griffiths
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 #include "wine/test.h"
32 /* Function ptrs for ordinal calls */
33 static HMODULE hShlwapi = 0;
34 static BOOL (WINAPI *pSHLWAPI_269)(LPCSTR, CLSID *) = 0;
35 static DWORD (WINAPI *pSHLWAPI_23)(REFGUID, LPSTR, INT) = 0;
38 const GUID * TEST_guids[] = {
41 &CATID_BrowsableShellExt,
50 &CGID_ShellServiceObject,
52 &IID_INewShortcutHookA,
56 &IID_IShellPropSheetExt,
68 &IID_IShellExecuteHookA,
70 &IID_INewShortcutHookW,
74 &IID_IShellExecuteHookW,
79 &IID_IDockingWindowSite,
94 DEFINE_GUID(IID_Endianess, 0x01020304, 0x0506, 0x0708, 0x09, 0x0A, 0x0B,
95 0x0C, 0x0D, 0x0E, 0x0F, 0x0A);
97 static void test_ClassIDs(void)
99 const GUID **guids = TEST_guids;
106 if (!pSHLWAPI_269 || !pSHLWAPI_23)
111 dwLen = pSHLWAPI_23(*guids, szBuff, 256);
112 ok(dwLen == 39, "wrong size for id %d\n", i);
114 bRet = pSHLWAPI_269(szBuff, &guid);
115 ok(bRet != FALSE, "created invalid string '%s'\n", szBuff);
118 ok(IsEqualGUID(*guids, &guid), "GUID created wrong %d\n", i);
125 dwLen = pSHLWAPI_23(&IID_Endianess, szBuff, 256);
126 ok(dwLen == 39, "wrong size for IID_Endianess\n");
128 ok(!strcmp(szBuff, "{01020304-0506-0708-090A-0B0C0D0E0F0A}"),
129 "Endianess Broken, got '%s'\n", szBuff);
133 dwLen = pSHLWAPI_23(&IID_Endianess, szBuff, 0);
134 ok(dwLen == 0, "accepted bad length\n");
135 ok(szBuff[0] == ':', "wrote to buffer with no length\n");
138 dwLen = pSHLWAPI_23(&IID_Endianess, szBuff, 38);
139 ok(dwLen == 0, "accepted bad length\n");
140 ok(szBuff[0] == ':', "wrote to buffer with no length\n");
143 dwLen = pSHLWAPI_23(&IID_Endianess, szBuff, 39);
144 ok(dwLen == 39, "rejected ok length\n");
145 ok(szBuff[0] == '{', "Didn't write to buffer with ok length\n");
148 strcpy(szBuff, "{xxx-");
149 bRet = pSHLWAPI_269(szBuff, &guid);
150 ok(bRet == FALSE, "accepted invalid string\n");
152 dwLen = pSHLWAPI_23(&IID_Endianess, szBuff, 39);
153 ok(dwLen == 39, "rejected ok length\n");
154 ok(szBuff[0] == '{', "Didn't write to buffer with ok length\n");
160 hShlwapi = LoadLibraryA("shlwapi.dll");
161 ok(hShlwapi != 0, "LoadLibraryA failed\n");
164 pSHLWAPI_269 = (void*)GetProcAddress(hShlwapi, (LPSTR)269);
165 pSHLWAPI_23 = (void*)GetProcAddress(hShlwapi, (LPSTR)23);
171 FreeLibrary(hShlwapi);