3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT : ReactOS user mode libraries
5 * MODULE : kernel32.dll
6 * FILE : reactos/lib/kernel32/misc/res.c
13 #include <kernel32/kernel32.h>
24 return FindResourceExA (hModule, lpType, lpName, 0);
42 RtlInitUnicodeString (&NameU,
44 RtlInitUnicodeString (&TypeU,
47 if (HIWORD(lpName) != 0)
49 RtlInitAnsiString (&Name,
51 RtlAnsiStringToUnicodeString (&NameU,
56 NameU.Buffer = (PWSTR)lpName;
58 if (HIWORD(lpType) != 0)
60 RtlInitAnsiString (&Type,
62 RtlAnsiStringToUnicodeString (&TypeU,
67 TypeU.Buffer = (PWSTR)lpType;
69 Res = FindResourceExW (hModule,
74 if (HIWORD(lpName) != 0)
75 RtlFreeUnicodeString (&NameU);
77 if (HIWORD(lpType) != 0)
78 RtlFreeUnicodeString (&TypeU);
91 return FindResourceExW (hModule, lpType, lpName, 0);
103 PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry = NULL;
104 LDR_RESOURCE_INFO ResourceInfo;
107 if ( hModule == NULL )
108 hModule = GetModuleHandle(NULL);
110 if ( !IS_INTRESOURCE(lpName) && lpName[0] == L'#' ) {
111 lpName = MAKEINTRESOURCEW(wcstoul(lpName + 1, NULL, 10));
113 if ( !IS_INTRESOURCE(lpType) && lpType[0] == L'#' ) {
114 lpType = MAKEINTRESOURCEW(wcstoul(lpType + 1, NULL, 10));
117 ResourceInfo.Type = (ULONG)lpType;
118 ResourceInfo.Name = (ULONG)lpName;
119 ResourceInfo.Language = (ULONG)wLanguage;
121 Status = LdrFindResource_U (hModule,
125 if (!NT_SUCCESS(Status))
127 SetLastErrorByStatus (Status);
131 return ResourceDataEntry;
146 hModule = GetModuleHandle(NULL);
149 Status = LdrAccessResource (hModule, hResInfo, &Data, NULL);
150 if (!NT_SUCCESS(Status))
152 SetLastErrorByStatus (Status);
166 return ((PIMAGE_RESOURCE_DATA_ENTRY)hResInfo)->Size;
189 BeginUpdateResourceW (
191 WINBOOL bDeleteExistingResources
194 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
201 BeginUpdateResourceA (
203 WINBOOL bDeleteExistingResources
206 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
217 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
229 return EndUpdateResourceW(
237 EnumResourceLanguagesW (
241 ENUMRESLANGPROC lpEnumFunc,
245 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
252 EnumResourceLanguagesA (
256 ENUMRESLANGPROC lpEnumFunc,
260 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
270 ENUMRESNAMEPROC lpEnumFunc,
274 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
284 ENUMRESNAMEPROC lpEnumFunc,
288 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
297 ENUMRESTYPEPROC lpEnumFunc,
301 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
311 ENUMRESTYPEPROC lpEnumFunc,
315 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
330 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
346 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);