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 ULONG nType = 0, nName = 0;
109 if ( hModule == NULL )
110 hModule = GetModuleHandle(NULL);
112 if ( HIWORD(lpName) != 0 ) {
113 if ( lpName[0] == L'#' ) {
114 l = lstrlenW(lpName) -1;
117 nName = lpName[i+1] - L'0';
124 SetLastErrorByStatus (STATUS_INVALID_PARAMETER);
128 lpName = (LPWSTR)nName;
131 if ( HIWORD(lpType) != 0 ) {
132 if ( lpType[0] == L'#' ) {
133 l = lstrlenW(lpType);
136 nType = lpType[i] - L'0';
143 SetLastErrorByStatus (STATUS_INVALID_PARAMETER);
147 lpType = (LPWSTR)nType;
150 ResourceInfo.Type = (ULONG)lpType;
151 ResourceInfo.Name = (ULONG)lpName;
152 ResourceInfo.Language = (ULONG)wLanguage;
154 Status = LdrFindResource_U (hModule,
158 if (!NT_SUCCESS(Status))
160 SetLastErrorByStatus (Status);
164 return ResourceDataEntry;
177 Status = LdrAccessResource (hModule, hResInfo, &Data, NULL);
178 if (!NT_SUCCESS(Status))
180 SetLastErrorByStatus (Status);
194 return ((PIMAGE_RESOURCE_DATA_ENTRY)hResInfo)->Size;
217 BeginUpdateResourceW (
219 WINBOOL bDeleteExistingResources
222 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
229 BeginUpdateResourceA (
231 WINBOOL bDeleteExistingResources
234 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
245 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
257 return EndUpdateResourceW(
265 EnumResourceLanguagesW (
269 ENUMRESLANGPROC lpEnumFunc,
273 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
280 EnumResourceLanguagesA (
284 ENUMRESLANGPROC lpEnumFunc,
288 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
298 ENUMRESNAMEPROC lpEnumFunc,
302 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
312 ENUMRESNAMEPROC lpEnumFunc,
316 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
325 ENUMRESTYPEPROC lpEnumFunc,
329 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
339 ENUMRESTYPEPROC lpEnumFunc,
343 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
358 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
374 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);