branch update for HEAD-2003050101
[reactos.git] / lib / kernel32 / misc / res.c
index f603ef0..7edd10e 100644 (file)
@@ -103,48 +103,15 @@ FindResourceExW (
        PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry = NULL;
        LDR_RESOURCE_INFO ResourceInfo;
        NTSTATUS Status;
-       int i,l;
-       ULONG nType = 0, nName = 0;
-       
+
        if ( hModule == NULL )
                hModule = GetModuleHandle(NULL);
 
-       if ( HIWORD(lpName) != 0 )  {
-               if ( lpName[0] == L'#' ) {
-                       l = lstrlenW(lpName) -1;
-
-                       for(i=0;i<l;i++) {
-                               nName = lpName[i+1] - L'0';
-                               if ( i < l - 1 )
-                                       nName*= 10;
-                       }
-               }
-               else
-               {
-                       SetLastErrorByStatus (STATUS_INVALID_PARAMETER);
-                       return NULL;
-               }
-
-               lpName = (LPWSTR)nName;
+       if ( !IS_INTRESOURCE(lpName) && lpName[0] == L'#' ) {
+               lpName = MAKEINTRESOURCEW(wcstoul(lpName + 1, NULL, 10));
        }
-
-       if ( HIWORD(lpType) != 0 )  {
-               if ( lpType[0] == L'#' ) {
-                       l = lstrlenW(lpType);
-
-                       for(i=0;i<l;i++) {
-                               nType = lpType[i] - L'0';
-                               if ( i < l - 1 )
-                                       nType*= 10;
-                       }
-               }
-               else
-               {
-                       SetLastErrorByStatus (STATUS_INVALID_PARAMETER);
-                       return NULL;
-               }
-
-               lpType = (LPWSTR)nType;
+       if ( !IS_INTRESOURCE(lpType) && lpType[0] == L'#' ) {
+               lpType = MAKEINTRESOURCEW(wcstoul(lpType + 1, NULL, 10));
        }
 
        ResourceInfo.Type = (ULONG)lpType;
@@ -174,6 +141,11 @@ LoadResource (
        NTSTATUS Status;
        PVOID Data;
 
+   if (hModule == NULL)
+   {
+     hModule = GetModuleHandle(NULL);
+   }
+
        Status = LdrAccessResource (hModule, hResInfo, &Data, NULL);
        if (!NT_SUCCESS(Status))
        {