Changeset 10185 for trunk/src/kernel32/message.cpp
- Timestamp:
- Jul 28, 2003, 1:35:32 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/message.cpp
r4502 r10185 1 /* $Id: message.cpp,v 1.1 3 2000-10-20 11:46:47sandervl Exp $ */1 /* $Id: message.cpp,v 1.14 2003-07-28 11:35:31 sandervl Exp $ */ 2 2 3 3 /* … … 60 60 DWORD offset; 61 61 } *se; 62 struct _stringentry { 63 WORD len; 64 WORD unknown; 65 CHAR str[1]; 66 } *stre; 62 MESSAGE_RESOURCE_ENTRY *stre; 67 63 68 64 /*FIXME: I am not sure about the '1' ... But I've only seen those entries*/ … … 78 74 for (i=nrofentries;i--;) { 79 75 if ((id>=se->firstentry) && (id<=se->lastentry)) { 80 stre = ( struct _stringentry*)(p+se->offset);76 stre = (PMESSAGE_RESOURCE_ENTRY)(p+se->offset); 81 77 id -= se->firstentry; 82 78 break; … … 87 83 return 0; 88 84 for (i=id;i--;) { 89 if (!(slen=stre-> len))85 if (!(slen=stre->Length)) 90 86 return 0; 91 stre = ( struct _stringentry*)(((char*)stre)+slen);87 stre = (PMESSAGE_RESOURCE_ENTRY)(((char*)stre)+slen); 92 88 } 93 slen=stre-> len;89 slen=stre->Length; 94 90 95 91 i = min(buflen - 1, slen); … … 97 93 return slen; /* different to LoadString */ 98 94 if (i>0) { 99 strncpy(buffer,stre->str,i); 100 buffer[i]=0; 95 if (stre->Flags & MESSAGE_RESOURCE_UNICODE) 96 WideCharToMultiByte( CP_ACP, 0, (LPWSTR)stre->Text, -1, buffer, i, NULL, NULL ); 97 else 98 lstrcpynA(buffer, (LPSTR)stre->Text, i); 99 buffer[i]=0; 101 100 } else { 102 101 if (buflen>1) { … … 166 165 if (dwFlags & FORMAT_MESSAGE_FROM_SYSTEM) 167 166 { 168 from = (char*)HeapAlloc( GetProcessHeap(),0,200 ); 169 sprintf(from,"Systemmessage, messageid = 0x%08lx\n",dwMessageId); 167 INT bufsize; 168 HMODULE hmodule; 169 170 hmodule = GetModuleHandleA("kernel32"); 171 bufsize=LoadMessageA(hmodule,dwMessageId,dwLanguageId,NULL,100); 172 if (bufsize) 173 { 174 from = (char*)HeapAlloc( GetProcessHeap(), 0, bufsize + 1 ); 175 LoadMessageA(hmodule,dwMessageId,dwLanguageId,from,bufsize+1); 176 } 170 177 } 171 178 … … 415 422 if (dwFlags & FORMAT_MESSAGE_FROM_SYSTEM) 416 423 { 417 /* gather information from system message tables ... */ 418 from = (char*)HeapAlloc( GetProcessHeap(),0,200 ); 419 sprintf(from,"Systemmessage, messageid = 0x%08lx\n",dwMessageId); 424 INT bufsize; 425 HMODULE hmodule; 426 427 hmodule = GetModuleHandleA("kernel32"); 428 bufsize=LoadMessageA(hmodule,dwMessageId,dwLanguageId,NULL,100); 429 if (bufsize) 430 { 431 from = (char*)HeapAlloc( GetProcessHeap(), 0, bufsize + 1 ); 432 LoadMessageA(hmodule,dwMessageId,dwLanguageId,from,bufsize+1); 433 } 420 434 } 421 435
Note:
See TracChangeset
for help on using the changeset viewer.