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
10 #include <ddk/ntddk.h>
12 #include <ntdll/ldr.h>
13 #include <kernel32/kernel32.h>
14 #include <kernel32/error.h>
25 return FindResourceExA (hModule, lpType, lpName, 0);
43 RtlInitUnicodeString (&NameU,
45 RtlInitUnicodeString (&TypeU,
48 if (HIWORD(lpName) != 0)
50 RtlInitAnsiString (&Name,
52 RtlAnsiStringToUnicodeString (&NameU,
57 NameU.Buffer = (PWSTR)lpName;
59 if (HIWORD(lpType) != 0)
61 RtlInitAnsiString (&Type,
63 RtlAnsiStringToUnicodeString (&TypeU,
68 TypeU.Buffer = (PWSTR)lpType;
70 Res = FindResourceExW (hModule,
75 if (HIWORD(lpName) != 0)
76 RtlFreeUnicodeString (&NameU);
78 if (HIWORD(lpType) != 0)
79 RtlFreeUnicodeString (&TypeU);
92 return FindResourceExW (hModule, lpType, lpName, 0);
104 PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry = NULL;
105 LDR_RESOURCE_INFO ResourceInfo;
108 ULONG nType = 0, nName = 0;
110 if ( hModule == NULL )
111 hModule = GetModuleHandle(NULL);
113 if ( HIWORD(lpName) != 0 ) {
114 if ( lpName[0] == L'#' ) {
115 l = lstrlenW(lpName) -1;
118 nName = lpName[i+1] - L'0';
125 SetLastErrorByStatus (STATUS_INVALID_PARAMETER);
129 lpName = (LPWSTR)nName;
132 if ( HIWORD(lpType) != 0 ) {
133 if ( lpType[0] == L'#' ) {
134 l = lstrlenW(lpType);
137 nType = lpType[i] - L'0';
144 SetLastErrorByStatus (STATUS_INVALID_PARAMETER);
148 lpType = (LPWSTR)nType;
151 ResourceInfo.Type = (ULONG)lpType;
152 ResourceInfo.Name = (ULONG)lpName;
153 ResourceInfo.Language = (ULONG)wLanguage;
155 Status = LdrFindResource_U (hModule,
159 if (!NT_SUCCESS(Status))
161 SetLastErrorByStatus (Status);
165 return ResourceDataEntry;
178 Status = LdrAccessResource (hModule, hResInfo, &Data, NULL);
179 if (!NT_SUCCESS(Status))
181 SetLastErrorByStatus (Status);
195 return ((PIMAGE_RESOURCE_DATA_ENTRY)hResInfo)->Size;
218 BeginUpdateResourceW (
220 WINBOOL bDeleteExistingResources
223 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
230 BeginUpdateResourceA (
232 WINBOOL bDeleteExistingResources
235 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
246 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
258 return EndUpdateResourceW(
266 EnumResourceLanguagesW (
270 ENUMRESLANGPROC lpEnumFunc,
274 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
281 EnumResourceLanguagesA (
285 ENUMRESLANGPROC lpEnumFunc,
289 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
299 ENUMRESNAMEPROC lpEnumFunc,
303 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
313 ENUMRESNAMEPROC lpEnumFunc,
317 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
326 ENUMRESTYPEPROC lpEnumFunc,
330 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
340 ENUMRESTYPEPROC lpEnumFunc,
344 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
359 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
375 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);