if ( hModule == NULL )
hModule = (HINSTANCE)GetModuleHandleW(NULL);
- if ( !IS_INTRESOURCE(lpName) && lpName[0] == L'#' ) {
- lpName = MAKEINTRESOURCEW(wcstoul(lpName + 1, NULL, 10));
+ _SEH2_TRY
+ {
+ if ( !IS_INTRESOURCE(lpName) && lpName[0] == L'#' ) {
+ lpName = MAKEINTRESOURCEW(wcstoul(lpName + 1, NULL, 10));
+ }
+ if ( !IS_INTRESOURCE(lpType) && lpType[0] == L'#' ) {
+ lpType = MAKEINTRESOURCEW(wcstoul(lpType + 1, NULL, 10));
+ }
+
+ ResourceInfo.Type = (ULONG)lpType;
+ ResourceInfo.Name = (ULONG)lpName;
+ ResourceInfo.Language = (ULONG)wLanguage;
+
+ Status = LdrFindResource_U (hModule,
+ &ResourceInfo,
+ RESOURCE_DATA_LEVEL,
+ &ResourceDataEntry);
}
- if ( !IS_INTRESOURCE(lpType) && lpType[0] == L'#' ) {
- lpType = MAKEINTRESOURCEW(wcstoul(lpType + 1, NULL, 10));
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ Status = _SEH2_GetExceptionCode();
}
+ _SEH2_END;
- ResourceInfo.Type = (ULONG)lpType;
- ResourceInfo.Name = (ULONG)lpName;
- ResourceInfo.Language = (ULONG)wLanguage;
-
- Status = LdrFindResource_U (hModule,
- &ResourceInfo,
- RESOURCE_DATA_LEVEL,
- &ResourceDataEntry);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus (Status);