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
23 #include "wine/test.h"
31 /* Function ptrs for ordinal calls */
32 static HMODULE hShlwapi
= 0;
33 static BOOL (WINAPI
*pSHLWAPI_269
)(LPCSTR
, CLSID
*) = 0;
34 static DWORD (WINAPI
*pSHLWAPI_23
)(REFGUID
, LPSTR
, INT
) = 0;
37 const GUID
* TEST_guids
[] = {
40 &CATID_BrowsableShellExt
,
49 &CGID_ShellServiceObject
,
51 &IID_INewShortcutHookA
,
55 &IID_IShellPropSheetExt
,
67 &IID_IShellExecuteHookA
,
69 &IID_INewShortcutHookW
,
73 &IID_IShellExecuteHookW
,
78 &IID_IDockingWindowSite
,
93 DEFINE_GUID(IID_Endianess
, 0x01020304, 0x0506, 0x0708, 0x09, 0x0A, 0x0B,
94 0x0C, 0x0D, 0x0E, 0x0F, 0x0A);
96 static void test_ClassIDs(void)
98 const GUID
**guids
= TEST_guids
;
105 if (!pSHLWAPI_269
|| !pSHLWAPI_23
)
110 dwLen
= pSHLWAPI_23(*guids
, szBuff
, 256);
111 ok(dwLen
== 39, "wrong size for id %d\n", i
);
113 bRet
= pSHLWAPI_269(szBuff
, &guid
);
114 ok(bRet
!= FALSE
, "created invalid string '%s'\n", szBuff
);
117 ok(IsEqualGUID(*guids
, &guid
), "GUID created wrong %d\n", i
);
124 dwLen
= pSHLWAPI_23(&IID_Endianess
, szBuff
, 256);
125 ok(dwLen
== 39, "wrong size for IID_Endianess\n");
127 ok(!strcmp(szBuff
, "{01020304-0506-0708-090A-0B0C0D0E0F0A}"),
128 "Endianess Broken, got '%s'\n", szBuff
);
132 dwLen
= pSHLWAPI_23(&IID_Endianess
, szBuff
, 0);
133 ok(dwLen
== 0, "accepted bad length\n");
134 ok(szBuff
[0] == ':', "wrote to buffer with no length\n");
137 dwLen
= pSHLWAPI_23(&IID_Endianess
, szBuff
, 38);
138 ok(dwLen
== 0, "accepted bad length\n");
139 ok(szBuff
[0] == ':', "wrote to buffer with no length\n");
142 dwLen
= pSHLWAPI_23(&IID_Endianess
, szBuff
, 39);
143 ok(dwLen
== 39, "rejected ok length\n");
144 ok(szBuff
[0] == '{', "Didn't write to buffer with ok length\n");
147 strcpy(szBuff
, "{xxx-");
148 bRet
= pSHLWAPI_269(szBuff
, &guid
);
149 ok(bRet
== FALSE
, "accepted invalid string\n");
151 dwLen
= pSHLWAPI_23(&IID_Endianess
, szBuff
, 39);
152 ok(dwLen
== 39, "rejected ok length\n");
153 ok(szBuff
[0] == '{', "Didn't write to buffer with ok length\n");
159 hShlwapi
= LoadLibraryA("shlwapi.dll");
160 ok(hShlwapi
!= 0, "LoadLibraryA failed\n");
163 pSHLWAPI_269
= (void*)GetProcAddress(hShlwapi
, (LPSTR
)269);
164 pSHLWAPI_23
= (void*)GetProcAddress(hShlwapi
, (LPSTR
)23);
170 FreeLibrary(hShlwapi
);