4 LengthOfStrResource(IN HINSTANCE hInst
,
16 /* There are always blocks of 16 strings */
17 lpName
= (LPWSTR
)MAKEINTRESOURCE((uID
>> 4) + 1);
19 /* Find the string table block */
20 if ((hrSrc
= FindResourceW(hInst
, lpName
, (LPWSTR
)RT_STRING
)) &&
21 (hRes
= LoadResource(hInst
, hrSrc
)) &&
22 (lpStr
= (WCHAR
*) LockResource(hRes
)))
26 /* Find the string we're looking for */
27 uID
&= 0xF; /* position in the block, same as % 16 */
28 for (x
= 0; x
< uID
; x
++)
30 lpStr
+= (*lpStr
) + 1;
33 /* Found the string */
40 AllocAndLoadString(OUT LPTSTR
*lpTarget
,
46 ln
= LengthOfStrResource(hInst
,
50 (*lpTarget
) = (LPTSTR
)LocalAlloc(LMEM_FIXED
,
52 if ((*lpTarget
) != NULL
)
55 if (!(Ret
= LoadString(hInst
, uID
, *lpTarget
, ln
)))
57 LocalFree((HLOCAL
)(*lpTarget
));