update for HEAD-2003091401
[reactos.git] / lib / kernel32 / misc / errormsg.c
index 162f964..43b7557 100644 (file)
 #define TRACE DPRINT
 #define FIXME DPRINT
 
-#define strlenW lstrlen
-#define strlen  lstrlen
-
-#define MAKEINTRESOURCE(i)  (LPTSTR) ((DWORD) ((WORD) (i)))
+//#define MAKEINTRESOURCE(i)  (LPTSTR) ((DWORD) ((WORD) (i)))
 //#define MAKEINTRESOURCEA(i)  (LPTSTR) ((DWORD) ((WORD) (i)))
 //#define MAKEINTRESOURCEW(i)  (LPTSTR) ((DWORD) ((WORD) (i)))
 
-#define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i)))
-#define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
+//#define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i)))
+//#define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
 //#define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE)
 
 
@@ -102,7 +99,7 @@ typedef struct tagMESSAGE_RESOURCE_DATA {
 //#define RT_RCDATAW         MAKEINTRESOURCEW(10)
 ////#define RT_RCDATA            WINELIB_NAME_AW(RT_RCDATA)
 //#define RT_MESSAGETABLEA   MAKEINTRESOURCEA(11)
-#define RT_MESSAGETABLEW   MAKEINTRESOURCEW(11)
+//#define RT_MESSAGETABLEW   MAKEINTRESOURCEW(11)
 ////#define RT_MESSAGETABLE       WINELIB_NAME_AW(RT_MESSAGETABLE)
 
 /* Messages...used by FormatMessage32* (KERNEL32.something)
@@ -206,7 +203,7 @@ static INT load_messageW( HMODULE instance, UINT id, WORD lang,
     {
         if (retval) {
             lstrcpynAtoW( buffer, buffer2, buflen );
-            retval = strlenW( buffer );
+            retval = lstrlenW( buffer );
         }
         HeapFree( GetProcessHeap(), 0, buffer2 );
     }
@@ -250,7 +247,7 @@ DWORD WINAPI FormatMessageA(
     from = NULL;
     if (dwFlags & FORMAT_MESSAGE_FROM_STRING)
     {
-        from = HeapAlloc( GetProcessHeap(), 0, strlen((LPSTR)lpSource)+1 );
+        from = RtlAllocateHeap(RtlGetProcessHeap(), 0, lstrlenA((LPSTR)lpSource)+1 );
         strcpy( from, (LPSTR)lpSource );
     }
     else {
@@ -295,17 +292,17 @@ DWORD WINAPI FormatMessageA(
             return 0;
         }
  
-        from = HeapAlloc( GetProcessHeap(), 0, bufsize + 1 );
+        from = RtlAllocateHeap(RtlGetProcessHeap(), 0, bufsize + 1 );
         load_messageA(hmodule,dwMessageId,dwLanguageId,from,bufsize+1);
     }
-    target      = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, 100);
+    target      = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, 100);
     t   = target;
     talloced= 100;
 
 #define ADD_TO_T(c) do { \
         *t++=c;\
         if (t-target == talloced) {\
-            target = (char*)HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,talloced*2);\
+            target = (char*)RtlReAllocateHeap(RtlGetProcessHeap(),HEAP_ZERO_MEMORY,target,talloced*2);\
             t = target+talloced;\
             talloced*=2;\
       }\
@@ -351,17 +348,17 @@ DWORD WINAPI FormatMessageA(
                             f++;
                             if (NULL!=(x=strchr(f,'!'))) {
                                 *x='\0';
-                                fmtstr=HeapAlloc(GetProcessHeap(),0,strlen(f)+2);
+                                fmtstr=RtlAllocateHeap(RtlGetProcessHeap(),0,lstrlenA(f)+2);
                                 sprintf(fmtstr,"%%%s",f);
                                 f=x+1;
                             } else {
-                                fmtstr=HeapAlloc(GetProcessHeap(),0,strlen(f)+2);
+                                fmtstr=RtlAllocateHeap(RtlGetProcessHeap(),0,lstrlenA(f)+2);
                                 sprintf(fmtstr,"%%%s",f);
-                                f+=strlen(f); /*at \0*/
+                                f+=lstrlenA(f); /*at \0*/
                             }
                         } else {
                             if(!args) break;
-                            fmtstr = HeapAlloc(GetProcessHeap(),0,3);
+                            fmtstr = RtlAllocateHeap(RtlGetProcessHeap(),0,3);
                             strcpy( fmtstr, "%s" );
                         }
                         if (args) {
@@ -376,17 +373,17 @@ DWORD WINAPI FormatMessageA(
                                 /* FIXME: precision and width components are not handled correctly */
                             if ( (strcmp(fmtstr, "%ls") == 0) || (strcmp(fmtstr,"%S") == 0) ) {
                                 sz = WideCharToMultiByte( CP_ACP, 0, *(WCHAR**)argliststart, -1, NULL, 0, NULL, NULL);
-                                b = HeapAlloc(GetProcessHeap(), 0, sz);
+                                b = RtlAllocateHeap(RtlGetProcessHeap(), 0, sz);
                                 WideCharToMultiByte( CP_ACP, 0, *(WCHAR**)argliststart, -1, b, sz, NULL, NULL);
                             } else {
-                                b = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sz = 1000);
+                                b = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, sz = 1000);
                                 /* CMF - This makes a BIG assumption about va_list */
                                 TRACE("A BIG assumption\n");
                                 //vsnprintf(b, sz, fmtstr, (va_list) argliststart);
                             }
                             for (x=b; *x; x++) ADD_TO_T(*x);
 
-                            HeapFree(GetProcessHeap(),0,b);
+                            RtlFreeHeap(RtlGetProcessHeap(),0,b);
                         } else {
                                 /* NULL args - copy formatstr
                                  * (probably wrong)
@@ -395,7 +392,7 @@ DWORD WINAPI FormatMessageA(
                                 ADD_TO_T(*lastf++);
                             }
                         }
-                        HeapFree(GetProcessHeap(),0,fmtstr);
+                        RtlFreeHeap(GetProcessHeap(),0,fmtstr);
                         break;
                     case 'n':
                         ADD_TO_T('\r');
@@ -442,9 +439,9 @@ DWORD WINAPI FormatMessageA(
         }
         *t='\0';
     }
-    talloced = strlen(target)+1;
+    talloced = lstrlenA(target)+1;
     if (nSize && talloced<nSize) {
-        target = (char*)HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize);
+        target = (char*)RtlReAllocateHeap(RtlGetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize);
     }
     //TRACE("-- %s\n",debugstr_a(target));
     if (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) {
@@ -453,12 +450,12 @@ DWORD WINAPI FormatMessageA(
     } else {
         lstrcpynA(lpBuffer,target,nSize);
     }
-    HeapFree(GetProcessHeap(),0,target);
-    if (from) HeapFree(GetProcessHeap(),0,from);
-    //TRACE("-- returning %d\n", (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) ?  strlen(*(LPSTR*)lpBuffer):strlen(lpBuffer));
+    RtlFreeHeap(RtlGetProcessHeap(),0,target);
+    if (from) RtlFreeHeap(RtlGetProcessHeap(),0,from);
+    //TRACE("-- returning %d\n", (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) ?  lstrlenA(*(LPSTR*)lpBuffer):lstrlenA(lpBuffer));
     return (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) ?
-        strlen(*(LPSTR*)lpBuffer):
-            strlen(lpBuffer);
+        lstrlenA(*(LPSTR*)lpBuffer):
+            lstrlenA(lpBuffer);
 #else
     return 0;
 #endif /* __i386__ */
@@ -500,7 +497,7 @@ DWORD WINAPI FormatMessageW(
     }
     from = NULL;
     if (dwFlags & FORMAT_MESSAGE_FROM_STRING) {
-        from = HEAP_strdupWtoA(GetProcessHeap(),0,(LPWSTR)lpSource);
+        from = (LPSTR)HEAP_strdupWtoA(GetProcessHeap(),0,(LPWSTR)lpSource);
     }
     else {
         bufsize = 0;
@@ -544,17 +541,17 @@ DWORD WINAPI FormatMessageW(
             return 0;
         }
  
-        from = HeapAlloc( GetProcessHeap(), 0, bufsize + 1 );
+        from = RtlAllocateHeap(RtlGetProcessHeap(), 0, bufsize + 1 );
         load_messageA(hmodule,dwMessageId,dwLanguageId,from,bufsize+1);
     }
-    target = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, 100 );
+    target = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, 100 );
     t = target;
     talloced= 100;
 
 #define ADD_TO_T(c)  do {\
     *t++=c;\
     if (t-target == talloced) {\
-        target = (char*)HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,talloced*2);\
+        target = (char*)RtlReAllocateHeap(RtlGetProcessHeap(),HEAP_ZERO_MEMORY,target,talloced*2);\
         t = target+talloced;\
         talloced*=2;\
     } \
@@ -600,17 +597,17 @@ DWORD WINAPI FormatMessageW(
                             f++;
                             if (NULL!=(x=strchr(f,'!'))) {
                                 *x='\0';
-                                fmtstr=HeapAlloc( GetProcessHeap(), 0, strlen(f)+2);
+                                fmtstr=RtlAllocateHeap(RtlGetProcessHeap(), 0, lstrlenA(f)+2);
                                 sprintf(fmtstr,"%%%s",f);
                                 f=x+1;
                             } else {
-                                fmtstr=HeapAlloc(GetProcessHeap(),0,strlen(f));
+                                fmtstr=RtlAllocateHeap(RtlGetProcessHeap(),0,lstrlenA(f));
                                 sprintf(fmtstr,"%%%s",f);
-                                f+=strlen(f); /*at \0*/
+                                f+=lstrlenA(f); /*at \0*/
                             }
                         } else {
                             if(!args) break;
-                            fmtstr = HeapAlloc( GetProcessHeap(),0,3);
+                            fmtstr = RtlAllocateHeap(RtlGetProcessHeap(),0,3);
                             strcpy( fmtstr, "%s" );
                         }
                         if (dwFlags & FORMAT_MESSAGE_ARGUMENT_ARRAY)
@@ -618,20 +615,20 @@ DWORD WINAPI FormatMessageW(
                         else
                             argliststart=(*(DWORD**)args)+insertnr-1;
 
-                        if (fmtstr[strlen(fmtstr)-1]=='s' && argliststart[0]) {
+                        if (fmtstr[lstrlenA(fmtstr)-1]=='s' && argliststart[0]) {
                             DWORD xarr[3];
 
-                            xarr[0]=(DWORD)HEAP_strdupWtoA(GetProcessHeap(),0,(LPWSTR)(*(argliststart+0)));
+                            xarr[0]=(DWORD)HEAP_strdupWtoA(RtlGetProcessHeap(),0,(LPWSTR)(*(argliststart+0)));
                             /* possible invalid pointers */
                             xarr[1]=*(argliststart+1);
                             xarr[2]=*(argliststart+2);
-                            sprintfbuf=HeapAlloc(GetProcessHeap(),0,strlenW((LPWSTR)argliststart[0])*2+1);
+                            sprintfbuf=RtlAllocateHeap(RtlGetProcessHeap(),0,lstrlenW((LPWSTR)argliststart[0])*2+1);
 
                             /* CMF - This makes a BIG assumption about va_list */
                             vsprintf(sprintfbuf, fmtstr, (va_list) xarr);
-                            HeapFree(GetProcessHeap(), 0, (LPVOID) xarr[0]);
+                            RtlFreeHeap(RtlGetProcessHeap(), 0, (LPVOID) xarr[0]);
                         } else {
-                            sprintfbuf=HeapAlloc(GetProcessHeap(),0,100);
+                            sprintfbuf=RtlAllocateHeap(RtlGetProcessHeap(),0,100);
 
                             /* CMF - This makes a BIG assumption about va_list */
                             vsprintf(sprintfbuf, fmtstr, (va_list) argliststart);
@@ -640,8 +637,8 @@ DWORD WINAPI FormatMessageW(
                         while (*x) {
                             ADD_TO_T(*x++);
                         }
-                        HeapFree(GetProcessHeap(),0,sprintfbuf);
-                        HeapFree(GetProcessHeap(),0,fmtstr);
+                        RtlFreeHeap(RtlGetProcessHeap(),0,sprintfbuf);
+                        RtlFreeHeap(RtlGetProcessHeap(),0,fmtstr);
                         break;
                     case 'n':
                         ADD_TO_T('\r');
@@ -688,9 +685,9 @@ DWORD WINAPI FormatMessageW(
         }
         *t='\0';
     }
-    talloced = strlen(target)+1;
+    talloced = lstrlenA(target)+1;
     if (nSize && talloced<nSize)
-        target = (char*)HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize);
+        target = (char*)RtlReAllocateHeap(RtlGetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize);
     if (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) {
         /* nSize is the MINIMUM size */
         DWORD len = MultiByteToWideChar( CP_ACP, 0, target, -1, NULL, 0 );
@@ -702,11 +699,11 @@ DWORD WINAPI FormatMessageW(
         if (nSize > 0 && !MultiByteToWideChar( CP_ACP, 0, target, -1, lpBuffer, nSize ))
             lpBuffer[nSize-1] = 0;
     }
-    HeapFree(GetProcessHeap(),0,target);
-    if (from) HeapFree(GetProcessHeap(),0,from);
+    RtlFreeHeap(RtlGetProcessHeap(),0,target);
+    if (from) RtlFreeHeap(RtlGetProcessHeap(),0,from);
     return (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) ?
-        strlenW(*(LPWSTR*)lpBuffer):
-            strlenW(lpBuffer);
+        lstrlenW(*(LPWSTR*)lpBuffer):
+            lstrlenW(lpBuffer);
 #else
     return 0;
 #endif /* __i386__ */
@@ -718,6 +715,9 @@ DWORD WINAPI FormatMessageW(
 
 /* EXPORTED */
 
+/*
+ * @unimplemented
+ */
 DWORD
 STDCALL
 FormatMessageW(
@@ -737,6 +737,9 @@ FormatMessageW(
 }
 
 
+/*
+ * @unimplemented
+ */
 DWORD
 STDCALL
 FormatMessageA(