Modify NE_FindTypeSection and NE_FindResourceFromType so as to be
usable by the VERSION code.

diff --git a/include/module.h b/include/module.h
index 30e45e7..a851e71 100644
--- a/include/module.h
+++ b/include/module.h
@@ -174,6 +174,9 @@
 extern DWORD NE_SizeofResource( NE_MODULE *pModule, HRSRC16 hRsrc );
 extern HGLOBAL16 NE_LoadResource( NE_MODULE *pModule, HRSRC16 hRsrc );
 extern BOOL16 NE_FreeResource( NE_MODULE *pModule, HGLOBAL16 handle );
+extern NE_TYPEINFO *NE_FindTypeSection( LPBYTE pResTab, NE_TYPEINFO *pTypeInfo, LPCSTR typeId );
+extern NE_NAMEINFO *NE_FindResourceFromType( LPBYTE pResTab, NE_TYPEINFO *pTypeInfo, LPCSTR resId );
+
 
 /* loader/ne/segment.c */
 extern BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum );
diff --git a/loader/ne/resource.c b/loader/ne/resource.c
index be55848..e48cdf7 100644
--- a/loader/ne/resource.c
+++ b/loader/ne/resource.c
@@ -98,8 +98,8 @@
  *
  * Find header struct for a particular resource type.
  */
-static NE_TYPEINFO* NE_FindTypeSection( NE_MODULE *pModule, 
-					NE_TYPEINFO *pTypeInfo, LPCSTR typeId )
+NE_TYPEINFO *NE_FindTypeSection( LPBYTE pResTab, 
+			 	 NE_TYPEINFO *pTypeInfo, LPCSTR typeId )
 {
     /* start from pTypeInfo */
 
@@ -111,7 +111,7 @@
 	{
 	    if (!(pTypeInfo->type_id & 0x8000))
 	    {
-		BYTE *p = (BYTE*)pModule + pModule->res_table + pTypeInfo->type_id;
+		BYTE *p = pResTab + pTypeInfo->type_id;
 		if ((*p == len) && !lstrncmpi32A( p+1, str, len ))
 		{
 		    TRACE(resource, "  Found type '%s'\n", str );
@@ -144,8 +144,8 @@
  *
  * Find a resource once the type info structure has been found.
  */
-static HRSRC16 NE_FindResourceFromType( NE_MODULE *pModule,
-                                        NE_TYPEINFO *pTypeInfo, LPCSTR resId )
+NE_NAMEINFO *NE_FindResourceFromType( LPBYTE pResTab,
+                                      NE_TYPEINFO *pTypeInfo, LPCSTR resId )
 {
     BYTE *p;
     int count;
@@ -158,9 +158,9 @@
         for (count = pTypeInfo->count; count > 0; count--, pNameInfo++)
         {
             if (pNameInfo->id & 0x8000) continue;
-            p = (BYTE *)pModule + pModule->res_table + pNameInfo->id;
+            p = pResTab + pNameInfo->id;
             if ((*p == len) && !lstrncmpi32A( p+1, str, len ))
-                return (HRSRC16)((int)pNameInfo - (int)pModule);
+                return pNameInfo;
         }
     }
     else  /* Numeric resource id */
@@ -168,9 +168,9 @@
         WORD id = LOWORD(resId) | 0x8000;
         for (count = pTypeInfo->count; count > 0; count--, pNameInfo++)
             if (pNameInfo->id == id) 
-	      return (HRSRC16)((int)pNameInfo - (int)pModule);
+	        return pNameInfo;
     }
-    return 0;
+    return NULL;
 }
 
 
@@ -241,7 +241,8 @@
 {
     FARPROC16 prevHandler = NULL;
     NE_MODULE *pModule = NE_GetPtr( hModule );
-    NE_TYPEINFO *pTypeInfo = (NE_TYPEINFO *)((char *)pModule + pModule->res_table + 2);
+    LPBYTE pResTab = (LPBYTE)pModule + pModule->res_table;
+    NE_TYPEINFO *pTypeInfo = (NE_TYPEINFO *)(pResTab + 2);
 
     if (!pModule || !pModule->res_table) return NULL;
 
@@ -250,7 +251,7 @@
 
     for (;;)
     {
-	if (!(pTypeInfo = NE_FindTypeSection( pModule, pTypeInfo, PTR_SEG_TO_LIN(typeId) )))
+	if (!(pTypeInfo = NE_FindTypeSection( pResTab, pTypeInfo, PTR_SEG_TO_LIN(typeId) )))
             break;
         prevHandler = pTypeInfo->resloader;
         pTypeInfo->resloader = resourceHandler;
@@ -266,7 +267,8 @@
 HRSRC16 NE_FindResource( NE_MODULE *pModule, LPCSTR name, LPCSTR type )
 {
     NE_TYPEINFO *pTypeInfo;
-    HRSRC16 hRsrc;
+    NE_NAMEINFO *pNameInfo;
+    LPBYTE pResTab;
 
     if (!pModule || !pModule->res_table) return 0;
 
@@ -306,16 +308,17 @@
         }
     }
 
-    pTypeInfo = (NE_TYPEINFO *)((char *)pModule + pModule->res_table + 2);
+    pResTab = (LPBYTE)pModule + pModule->res_table;
+    pTypeInfo = (NE_TYPEINFO *)( pResTab + 2 );
 
     for (;;)
     {
-	if (!(pTypeInfo = NE_FindTypeSection( pModule, pTypeInfo, type )))
+	if (!(pTypeInfo = NE_FindTypeSection( pResTab, pTypeInfo, type )))
             break;
-        if ((hRsrc = NE_FindResourceFromType(pModule, pTypeInfo, name)))
+        if ((pNameInfo = NE_FindResourceFromType( pResTab, pTypeInfo, name )))
         {
             TRACE(resource, "    Found id %08lx\n", (DWORD)name );
-            return hRsrc;
+            return (HRSRC16)( (int)pNameInfo - (int)pModule );
         }
         TRACE(resource, "    Not found, going on\n" );
         pTypeInfo = NEXT_TYPEINFO(pTypeInfo);