update for HEAD-2003091401
[reactos.git] / lib / kernel32 / misc / res.c
index 80bbda1..2ba8101 100644 (file)
@@ -7,13 +7,15 @@
  * AUTHOR   : ???
  */
 
-#include <ddk/ntddk.h>
-#include <windows.h>
-#include <ntdll/ldr.h>
+#include <k32.h>
+
+#define NDEBUG
 #include <kernel32/kernel32.h>
-#include <kernel32/error.h>
 
 
+/*
+ * @implemented
+ */
 HRSRC
 STDCALL
 FindResourceA (
@@ -25,6 +27,10 @@ FindResourceA (
        return FindResourceExA (hModule, lpType, lpName, 0);
 }
 
+
+/*
+ * @implemented
+ */
 HRSRC
 STDCALL
 FindResourceExA(
@@ -81,6 +87,10 @@ FindResourceExA(
        return Res;
 }
 
+
+/*
+ * @implemented
+ */
 HRSRC
 STDCALL
 FindResourceW (
@@ -92,6 +102,10 @@ FindResourceW (
        return FindResourceExW (hModule, lpType, lpName, 0);
 }
 
+
+/*
+ * @implemented
+ */
 HRSRC
 STDCALL
 FindResourceExW (
@@ -104,48 +118,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;
-       }
+               hModule = (HINSTANCE)GetModuleHandleW(NULL);
 
-       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(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;
@@ -165,6 +146,10 @@ FindResourceExW (
        return ResourceDataEntry;
 }
 
+
+/*
+ * @implemented
+ */
 HGLOBAL
 STDCALL
 LoadResource (
@@ -175,6 +160,11 @@ LoadResource (
        NTSTATUS Status;
        PVOID Data;
 
+   if (hModule == NULL)
+   {
+     hModule = (HINSTANCE)GetModuleHandleW(NULL);
+   }
+
        Status = LdrAccessResource (hModule, hResInfo, &Data, NULL);
        if (!NT_SUCCESS(Status))
        {
@@ -185,6 +175,10 @@ LoadResource (
        return Data;
 }
 
+
+/*
+ * @implemented
+ */
 DWORD
 STDCALL
 SizeofResource (
@@ -195,6 +189,10 @@ SizeofResource (
        return ((PIMAGE_RESOURCE_DATA_ENTRY)hResInfo)->Size;
 }
 
+
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 FreeResource (
@@ -204,6 +202,10 @@ FreeResource (
        return TRUE;
 }
 
+
+/*
+ * @unimplemented
+ */
 LPVOID
 STDCALL
 LockResource (
@@ -213,6 +215,10 @@ LockResource (
        return hResData;
 }
 
+
+/*
+ * @unimplemented
+ */
 HANDLE
 STDCALL
 BeginUpdateResourceW (
@@ -225,6 +231,9 @@ BeginUpdateResourceW (
 }
 
 
+/*
+ * @unimplemented
+ */
 HANDLE
 STDCALL
 BeginUpdateResourceA (
@@ -236,6 +245,10 @@ BeginUpdateResourceA (
        return FALSE;
 }
 
+
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 EndUpdateResourceW (
@@ -248,6 +261,9 @@ EndUpdateResourceW (
 }
 
 
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 EndUpdateResourceA (
@@ -261,14 +277,18 @@ EndUpdateResourceA (
                        );
 }
 
+
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 EnumResourceLanguagesW (
-       HINSTANCE       hModule,
-       LPCWSTR         lpType,
-       LPCWSTR         lpName,
-       ENUMRESLANGPROC lpEnumFunc,
-       LONG            lParam
+       HINSTANCE               hModule,
+       LPCWSTR                 lpType,
+       LPCWSTR                 lpName,
+       ENUMRESLANGPROCW        lpEnumFunc,
+       LONG                    lParam
        )
 {
        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -279,11 +299,11 @@ EnumResourceLanguagesW (
 WINBOOL
 STDCALL
 EnumResourceLanguagesA (
-       HINSTANCE       hModule,
-       LPCSTR          lpType,
-       LPCSTR          lpName,
-       ENUMRESLANGPROC lpEnumFunc,
-       LONG            lParam
+       HINSTANCE               hModule,
+       LPCSTR                  lpType,
+       LPCSTR                  lpName,
+       ENUMRESLANGPROCA        lpEnumFunc,
+       LONG                    lParam
        )
 {
        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -291,13 +311,16 @@ EnumResourceLanguagesA (
 }
 
 
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 EnumResourceNamesW (
-       HINSTANCE       hModule,
-       LPCWSTR         lpType,
-       ENUMRESNAMEPROC lpEnumFunc,
-       LONG            lParam
+       HINSTANCE               hModule,
+       LPCWSTR                 lpType,
+       ENUMRESNAMEPROCW        lpEnumFunc,
+       LONG                    lParam
        )
 {
        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -305,13 +328,16 @@ EnumResourceNamesW (
 }
 
 
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 EnumResourceNamesA (
-       HINSTANCE       hModule,
-       LPCSTR          lpType,
-       ENUMRESNAMEPROC lpEnumFunc,
-       LONG            lParam
+       HINSTANCE               hModule,
+       LPCSTR                  lpType,
+       ENUMRESNAMEPROCA        lpEnumFunc,
+       LONG                    lParam
        )
 {
        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -319,12 +345,15 @@ EnumResourceNamesA (
 }
 
 
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 EnumResourceTypesW (
-       HINSTANCE       hModule,
-       ENUMRESTYPEPROC lpEnumFunc,
-       LONG            lParam
+       HINSTANCE               hModule,
+       ENUMRESTYPEPROCW        lpEnumFunc,
+       LONG                    lParam
        )
 {
        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -332,19 +361,25 @@ EnumResourceTypesW (
 }
 
 
-
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 EnumResourceTypesA (
-       HINSTANCE       hModule,
-       ENUMRESTYPEPROC lpEnumFunc,
-       LONG            lParam
+       HINSTANCE               hModule,
+       ENUMRESTYPEPROCA        lpEnumFunc,
+       LONG                    lParam
        )
 {
        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
        return FALSE;
 }
 
+
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 UpdateResourceA (
@@ -361,6 +396,9 @@ UpdateResourceA (
 }
 
 
+/*
+ * @unimplemented
+ */
 WINBOOL
 STDCALL
 UpdateResourceW (
@@ -376,5 +414,4 @@ UpdateResourceW (
        return FALSE;
 }
 
-
 /* EOF */