1 /* $Id: res.c,v 1.22 2004/09/11 17:06:33 gvg Exp $
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 "../include/debug.h"
27 return FindResourceExA (hModule
, lpType
, lpName
, 0);
49 RtlInitUnicodeString (&NameU
,
51 RtlInitUnicodeString (&TypeU
,
54 if (HIWORD(lpName
) != 0)
56 RtlInitAnsiString (&Name
,
58 RtlAnsiStringToUnicodeString (&NameU
,
63 NameU
.Buffer
= (PWSTR
)lpName
;
65 if (HIWORD(lpType
) != 0)
67 RtlInitAnsiString (&Type
,
69 RtlAnsiStringToUnicodeString (&TypeU
,
74 TypeU
.Buffer
= (PWSTR
)lpType
;
76 Res
= FindResourceExW (hModule
,
81 if (HIWORD(lpName
) != 0)
82 RtlFreeUnicodeString (&NameU
);
84 if (HIWORD(lpType
) != 0)
85 RtlFreeUnicodeString (&TypeU
);
102 return FindResourceExW (hModule
, lpType
, lpName
, 0);
118 PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry
= NULL
;
119 LDR_RESOURCE_INFO ResourceInfo
;
122 if ( hModule
== NULL
)
123 hModule
= (HINSTANCE
)GetModuleHandleW(NULL
);
125 if ( !IS_INTRESOURCE(lpName
) && lpName
[0] == L
'#' ) {
126 lpName
= MAKEINTRESOURCEW(wcstoul(lpName
+ 1, NULL
, 10));
128 if ( !IS_INTRESOURCE(lpType
) && lpType
[0] == L
'#' ) {
129 lpType
= MAKEINTRESOURCEW(wcstoul(lpType
+ 1, NULL
, 10));
132 ResourceInfo
.Type
= (ULONG
)lpType
;
133 ResourceInfo
.Name
= (ULONG
)lpName
;
134 ResourceInfo
.Language
= (ULONG
)wLanguage
;
136 Status
= LdrFindResource_U (hModule
,
140 if (!NT_SUCCESS(Status
))
142 SetLastErrorByStatus (Status
);
146 return (HRSRC
)ResourceDataEntry
;
162 PIMAGE_RESOURCE_DATA_ENTRY ResInfo
= (PIMAGE_RESOURCE_DATA_ENTRY
)hResInfo
;
166 hModule
= (HINSTANCE
)GetModuleHandleW(NULL
);
169 Status
= LdrAccessResource (hModule
, ResInfo
, &Data
, NULL
);
170 if (!NT_SUCCESS(Status
))
172 SetLastErrorByStatus (Status
);
190 return ((PIMAGE_RESOURCE_DATA_ENTRY
)hResInfo
)->Size
;
225 BeginUpdateResourceW (
227 BOOL bDeleteExistingResources
230 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
240 BeginUpdateResourceA (
242 BOOL bDeleteExistingResources
245 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
260 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
275 return EndUpdateResourceW(
287 EnumResourceLanguagesW (
291 ENUMRESLANGPROCW lpEnumFunc
,
295 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
302 EnumResourceLanguagesA (
306 ENUMRESLANGPROCA lpEnumFunc
,
310 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
323 ENUMRESNAMEPROCW lpEnumFunc
,
327 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
340 ENUMRESNAMEPROCA lpEnumFunc
,
344 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
356 ENUMRESTYPEPROCW lpEnumFunc
,
360 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
372 ENUMRESTYPEPROCA lpEnumFunc
,
376 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
395 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
414 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);