Sync Winhelp to Wine 0.9.53 (WOW, NOT ONE WARNING!!! OMGWTFBBQ)

svn path=/trunk/; revision=31890
This commit is contained in:
Daniel Reimer 2008-01-19 16:46:21 +00:00
parent 6e6060a610
commit 297fefa2c7
35 changed files with 1125 additions and 905 deletions

View file

@ -39,7 +39,7 @@ static HANDLE CALLBACK WHD_Open(LPSTR name, BYTE flags)
{ {
unsigned mode = 0; unsigned mode = 0;
//WINE_FIXME("(%s %x)\n", wine_dbgstr_a(name), flags); WINE_FIXME("(%s %x)\n", wine_dbgstr_a(name), flags);
switch (flags) switch (flags)
{ {
case 0: mode = GENERIC_READ | GENERIC_WRITE; break; case 0: mode = GENERIC_READ | GENERIC_WRITE; break;

View file

@ -3,6 +3,7 @@
* *
* Copyright 1996 Ulrich Schmid * Copyright 1996 Ulrich Schmid
* 2002 Eric Pouech * 2002 Eric Pouech
* 2007 Kirill K. Smirnov
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -50,6 +51,7 @@ static inline unsigned GET_UINT(const BYTE* buffer, unsigned i)
static HLPFILE *first_hlpfile = 0; static HLPFILE *first_hlpfile = 0;
static BYTE *file_buffer; static BYTE *file_buffer;
static UINT file_buffer_size;
static struct static struct
{ {
@ -84,6 +86,7 @@ static BOOL HLPFILE_UncompressLZ77_Phrases(HLPFILE*);
static BOOL HLPFILE_Uncompress_Phrases40(HLPFILE*); static BOOL HLPFILE_Uncompress_Phrases40(HLPFILE*);
static BOOL HLPFILE_Uncompress_Topic(HLPFILE*); static BOOL HLPFILE_Uncompress_Topic(HLPFILE*);
static BOOL HLPFILE_GetContext(HLPFILE*); static BOOL HLPFILE_GetContext(HLPFILE*);
static BOOL HLPFILE_GetKeywords(HLPFILE*);
static BOOL HLPFILE_GetMap(HLPFILE*); static BOOL HLPFILE_GetMap(HLPFILE*);
static BOOL HLPFILE_AddPage(HLPFILE*, BYTE*, BYTE*, unsigned); static BOOL HLPFILE_AddPage(HLPFILE*, BYTE*, BYTE*, unsigned);
static BOOL HLPFILE_AddParagraph(HLPFILE*, BYTE *, BYTE*, unsigned*); static BOOL HLPFILE_AddParagraph(HLPFILE*, BYTE *, BYTE*, unsigned*);
@ -92,27 +95,22 @@ static BOOL HLPFILE_Uncompress3(char*, const char*, const BYTE*, const BYTE*);
static void HLPFILE_UncompressRLE(const BYTE* src, const BYTE* end, BYTE** dst, unsigned dstsz); static void HLPFILE_UncompressRLE(const BYTE* src, const BYTE* end, BYTE** dst, unsigned dstsz);
static BOOL HLPFILE_ReadFont(HLPFILE* hlpfile); static BOOL HLPFILE_ReadFont(HLPFILE* hlpfile);
#if 0
/*********************************************************************** /***********************************************************************
* *
* HLPFILE_PageByNumber * HLPFILE_PageByNumber
*/ */
static HLPFILE_PAGE *HLPFILE_PageByNumber(LPCSTR lpszPath, UINT wNum) static HLPFILE_PAGE *HLPFILE_PageByNumber(HLPFILE* hlpfile, UINT wNum)
{ {
HLPFILE_PAGE *page; HLPFILE_PAGE *page;
HLPFILE *hlpfile = HLPFILE_ReadHlpFile(lpszPath); UINT temp = wNum;
if (!hlpfile) return 0; WINE_TRACE("<%s>[%u]\n", hlpfile->lpszPath, wNum);
WINE_TRACE("[%s/%u]\n", lpszPath, wNum);
for (page = hlpfile->first_page; page && wNum; page = page->next) wNum--;
/* HLPFILE_FreeHlpFile(lpszPath); */
for (page = hlpfile->first_page; page && temp; page = page->next) temp--;
if (!page)
WINE_ERR("Page of number %u not found in file %s\n", wNum, hlpfile->lpszPath);
return page; return page;
} }
#endif
/* FIXME: /* FIXME:
* this finds the page containing the offset. The offset can either * this finds the page containing the offset. The offset can either
@ -151,35 +149,58 @@ HLPFILE_PAGE *HLPFILE_PageByOffset(HLPFILE* hlpfile, LONG offset)
return found; return found;
} }
/**************************************************************************
* comp_PageByHash
*
* HLPFILE_BPTreeCompare function for '|CONTEXT' B+ tree file
*
*/
static int comp_PageByHash(void *p, const void *key,
int leaf, void** next)
{
LONG lKey = (LONG)key;
LONG lTest = GET_UINT(p, 0);
*next = (char *)p+(leaf?8:6);
WINE_TRACE("Comparing '%u' with '%u'\n", lKey, lTest);
if (lTest < lKey) return -1;
if (lTest > lKey) return 1;
return 0;
}
/*********************************************************************** /***********************************************************************
* *
* HLPFILE_HlpFilePageByHash * HLPFILE_HlpFilePageByHash
*/ */
HLPFILE_PAGE *HLPFILE_PageByHash(HLPFILE* hlpfile, LONG lHash) HLPFILE_PAGE *HLPFILE_PageByHash(HLPFILE* hlpfile, LONG lHash)
{ {
int i; BYTE *ptr;
if (!hlpfile) return 0; if (!hlpfile) return 0;
WINE_TRACE("<%s>[%x]\n", hlpfile->lpszPath, lHash); WINE_TRACE("<%s>[%x]\n", hlpfile->lpszPath, lHash);
for (i = 0; i < hlpfile->wContextLen; i++) /* For win 3.0 files hash values are really page numbers */
{ if (hlpfile->version <= 16)
if (hlpfile->Context[i].lHash == lHash) return HLPFILE_PageByNumber(hlpfile, lHash);
return HLPFILE_PageByOffset(hlpfile, hlpfile->Context[i].offset);
}
ptr = HLPFILE_BPTreeSearch(hlpfile->Context, (void*)lHash, comp_PageByHash);
if (!ptr)
{
WINE_ERR("Page of hash %x not found in file %s\n", lHash, hlpfile->lpszPath); WINE_ERR("Page of hash %x not found in file %s\n", lHash, hlpfile->lpszPath);
return NULL; return NULL;
} }
return HLPFILE_PageByOffset(hlpfile, GET_UINT(ptr, 4));
}
/*********************************************************************** /***********************************************************************
* *
* HLPFILE_PageByMap * HLPFILE_PageByMap
*/ */
HLPFILE_PAGE *HLPFILE_PageByMap(HLPFILE* hlpfile, LONG lMap) HLPFILE_PAGE *HLPFILE_PageByMap(HLPFILE* hlpfile, LONG lMap)
{ {
int i; unsigned int i;
if (!hlpfile) return 0; if (!hlpfile) return 0;
@ -250,32 +271,15 @@ HLPFILE *HLPFILE_ReadHlpFile(LPCSTR lpszPath)
} }
} }
hlpfile = HeapAlloc(GetProcessHeap(), 0, sizeof(HLPFILE) + lstrlen(lpszPath) + 1); hlpfile = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(HLPFILE) + lstrlen(lpszPath) + 1);
if (!hlpfile) return 0; if (!hlpfile) return 0;
hlpfile->lpszPath = (char*)hlpfile + sizeof(HLPFILE); hlpfile->lpszPath = (char*)hlpfile + sizeof(HLPFILE);
hlpfile->lpszTitle = NULL;
hlpfile->lpszCopyright = NULL;
hlpfile->first_page = NULL;
hlpfile->first_macro = NULL;
hlpfile->wContextLen = 0;
hlpfile->Context = NULL;
hlpfile->wMapLen = 0;
hlpfile->Map = NULL;
hlpfile->contents_start = 0xFFFFFFFF; hlpfile->contents_start = 0xFFFFFFFF;
hlpfile->prev = NULL;
hlpfile->next = first_hlpfile; hlpfile->next = first_hlpfile;
hlpfile->wRefCount = 1; hlpfile->wRefCount = 1;
hlpfile->numBmps = 0;
hlpfile->bmps = NULL;
hlpfile->numFonts = 0;
hlpfile->fonts = NULL;
hlpfile->numWindows = 0;
hlpfile->windows = NULL;
strcpy(hlpfile->lpszPath, lpszPath); strcpy(hlpfile->lpszPath, lpszPath);
first_hlpfile = hlpfile; first_hlpfile = hlpfile;
@ -337,9 +341,23 @@ static BOOL HLPFILE_DoReadHlpFile(HLPFILE *hlpfile, LPCSTR lpszPath)
{ {
BYTE* end; BYTE* end;
/* FIXME this depends on the blocksize, can be 2k in some cases */ if (hlpfile->version <= 16)
{
index = (ref - 0x0C) / hlpfile->dsize;
offset = (ref - 0x0C) % hlpfile->dsize;
}
else
{
index = (ref - 0x0C) >> 14; index = (ref - 0x0C) >> 14;
offset = (ref - 0x0C) & 0x3fff; offset = (ref - 0x0C) & 0x3FFF;
}
if (hlpfile->version <= 16 && index != old_index && index != 0)
{
/* we jumped to the next block, adjust pointers */
ref -= 12;
offset -= 12;
}
WINE_TRACE("ref=%08x => [%u/%u]\n", ref, index, offset); WINE_TRACE("ref=%08x => [%u/%u]\n", ref, index, offset);
@ -355,11 +373,8 @@ static BOOL HLPFILE_DoReadHlpFile(HLPFILE *hlpfile, LPCSTR lpszPath)
if (!HLPFILE_AddPage(hlpfile, buf, end, index * 0x8000L + offs)) return FALSE; if (!HLPFILE_AddPage(hlpfile, buf, end, index * 0x8000L + offs)) return FALSE;
break; break;
case 0x01:
case 0x20: case 0x20:
if (!HLPFILE_AddParagraph(hlpfile, buf, end, &len)) return FALSE;
offs += len;
break;
case 0x23: case 0x23:
if (!HLPFILE_AddParagraph(hlpfile, buf, end, &len)) return FALSE; if (!HLPFILE_AddParagraph(hlpfile, buf, end, &len)) return FALSE;
offs += len; offs += len;
@ -369,10 +384,19 @@ static BOOL HLPFILE_DoReadHlpFile(HLPFILE *hlpfile, LPCSTR lpszPath)
WINE_ERR("buf[0x14] = %x\n", buf[0x14]); WINE_ERR("buf[0x14] = %x\n", buf[0x14]);
} }
if (hlpfile->version <= 16)
{
ref += GET_UINT(buf, 0xc);
if (GET_UINT(buf, 0xc) == 0)
break;
}
else
ref = GET_UINT(buf, 0xc); ref = GET_UINT(buf, 0xc);
} while (ref != 0xffffffff); } while (ref != 0xffffffff);
HLPFILE_GetKeywords(hlpfile);
HLPFILE_GetMap(hlpfile); HLPFILE_GetMap(hlpfile);
if (hlpfile->version <= 16) return TRUE;
return HLPFILE_GetContext(hlpfile); return HLPFILE_GetContext(hlpfile);
} }
@ -384,12 +408,13 @@ static BOOL HLPFILE_AddPage(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigned off
{ {
HLPFILE_PAGE* page; HLPFILE_PAGE* page;
BYTE* title; BYTE* title;
UINT titlesize; UINT titlesize, blocksize, datalen;
char* ptr; char* ptr;
HLPFILE_MACRO*macro; HLPFILE_MACRO*macro;
if (buf + 0x31 > end) {WINE_WARN("page1\n"); return FALSE;}; blocksize = GET_UINT(buf, 0);
title = buf + GET_UINT(buf, 0x10); datalen = GET_UINT(buf, 0x10);
title = buf + datalen;
if (title > end) {WINE_WARN("page2\n"); return FALSE;}; if (title > end) {WINE_WARN("page2\n"); return FALSE;};
titlesize = GET_UINT(buf, 4); titlesize = GET_UINT(buf, 4);
@ -397,37 +422,35 @@ static BOOL HLPFILE_AddPage(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigned off
if (!page) return FALSE; if (!page) return FALSE;
page->lpszTitle = (char*)page + sizeof(HLPFILE_PAGE); page->lpszTitle = (char*)page + sizeof(HLPFILE_PAGE);
if (hlpfile->hasPhrases) if (titlesize > blocksize - datalen)
{
HLPFILE_Uncompress2(title, end, (BYTE*)page->lpszTitle, (BYTE*)page->lpszTitle + titlesize);
}
else
{
if (GET_UINT(buf, 0x4) > GET_UINT(buf, 0) - GET_UINT(buf, 0x10))
{ {
/* need to decompress */ /* need to decompress */
HLPFILE_Uncompress3(page->lpszTitle, page->lpszTitle + titlesize, if (hlpfile->hasPhrases)
title, end); HLPFILE_Uncompress2(title, end, (BYTE*)page->lpszTitle, (BYTE*)page->lpszTitle + titlesize);
} else if (hlpfile->hasPhrases40)
HLPFILE_Uncompress3(page->lpszTitle, page->lpszTitle + titlesize, title, end);
else else
{ {
WINE_FIXME("Text size is too long, splitting\n");
titlesize = blocksize - datalen;
memcpy(page->lpszTitle, title, titlesize); memcpy(page->lpszTitle, title, titlesize);
} }
} }
else
memcpy(page->lpszTitle, title, titlesize);
page->lpszTitle[titlesize] = '\0'; page->lpszTitle[titlesize] = '\0';
if (hlpfile->first_page) if (hlpfile->first_page)
{ {
HLPFILE_PAGE *p; hlpfile->last_page->next = page;
page->prev = hlpfile->last_page;
for (p = hlpfile->first_page; p->next; p = p->next); hlpfile->last_page = page;
page->prev = p;
p->next = page;
} }
else else
{ {
hlpfile->first_page = page; hlpfile->first_page = page;
hlpfile->last_page = page;
page->prev = NULL; page->prev = NULL;
} }
@ -580,7 +603,11 @@ static BYTE* HLPFILE_DecompressGfx(BYTE* src, unsigned csz, unsigned sz, BYTE
if (!tmp) return FALSE; if (!tmp) return FALSE;
HLPFILE_UncompressLZ77(src, src + csz, tmp); HLPFILE_UncompressLZ77(src, src + csz, tmp);
dst = tmp2 = HeapAlloc(GetProcessHeap(), 0, sz); dst = tmp2 = HeapAlloc(GetProcessHeap(), 0, sz);
if (!dst) return FALSE; if (!dst)
{
HeapFree(GetProcessHeap(), 0, tmp);
return FALSE;
}
HLPFILE_UncompressRLE(tmp, tmp + sz77, &tmp2, sz); HLPFILE_UncompressRLE(tmp, tmp + sz77, &tmp2, sz);
if (tmp2 - dst != sz) if (tmp2 - dst != sz)
WINE_WARN("Bogus gfx sizes (LZ77+RunLen): %u / %u\n", tmp2 - dst, sz); WINE_WARN("Bogus gfx sizes (LZ77+RunLen): %u / %u\n", tmp2 - dst, sz);
@ -856,45 +883,51 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne
HLPFILE_PARAGRAPH *paragraph, **paragraphptr; HLPFILE_PARAGRAPH *paragraph, **paragraphptr;
UINT textsize; UINT textsize;
BYTE *format, *format_end; BYTE *format, *format_end;
char *text, *text_end; char *text, *text_base, *text_end;
long size; long size, blocksize, datalen;
unsigned short bits; unsigned short bits;
unsigned nc, ncol = 1; unsigned nc, ncol = 1;
if (!hlpfile->first_page) {WINE_WARN("no page\n"); return FALSE;}; if (!hlpfile->last_page) {WINE_WARN("no page\n"); return FALSE;};
page = hlpfile->last_page;
for (page = hlpfile->first_page; page->next; page = page->next) /* Nothing */;
for (paragraphptr = &page->first_paragraph; *paragraphptr; for (paragraphptr = &page->first_paragraph; *paragraphptr;
paragraphptr = &(*paragraphptr)->next) /* Nothing */; paragraphptr = &(*paragraphptr)->next) /* Nothing */;
if (buf + 0x19 > end) {WINE_WARN("header too small\n"); return FALSE;}; if (buf + 0x19 > end) {WINE_WARN("header too small\n"); return FALSE;};
blocksize = GET_UINT(buf, 0);
size = GET_UINT(buf, 0x4); size = GET_UINT(buf, 0x4);
text = HeapAlloc(GetProcessHeap(), 0, size); datalen = GET_UINT(buf, 0x10);
text = text_base = HeapAlloc(GetProcessHeap(), 0, size);
if (!text) return FALSE; if (!text) return FALSE;
if (size > blocksize - datalen)
{
/* need to decompress */
if (hlpfile->hasPhrases) if (hlpfile->hasPhrases)
{ HLPFILE_Uncompress2(buf + datalen, end, (BYTE*)text, (BYTE*)text + size);
HLPFILE_Uncompress2(buf + GET_UINT(buf, 0x10), end, (BYTE*)text, (BYTE*)text + size); else if (hlpfile->hasPhrases40)
} HLPFILE_Uncompress3(text, text + size, buf + datalen, end);
else else
{ {
if (GET_UINT(buf, 0x4) > GET_UINT(buf, 0) - GET_UINT(buf, 0x10)) WINE_FIXME("Text size is too long, splitting\n");
{ size = blocksize - datalen;
/* block is compressed */ memcpy(text, buf + datalen, size);
HLPFILE_Uncompress3(text, text + size, buf + GET_UINT(buf, 0x10), end); }
} }
else else
{ memcpy(text, buf + datalen, size);
text = (char*)buf + GET_UINT(buf, 0x10);
}
}
text_end = text + size; text_end = text + size;
format = buf + 0x15; format = buf + 0x15;
format_end = buf + GET_UINT(buf, 0x10); format_end = buf + GET_UINT(buf, 0x10);
if (buf[0x14] == 0x20 || buf[0x14] == 0x23)
{
fetch_long(&format); fetch_long(&format);
*len = fetch_ushort(&format); *len = fetch_ushort(&format);
}
else *len = end-buf-15;
if (buf[0x14] == 0x23) if (buf[0x14] == 0x23)
{ {
@ -914,6 +947,9 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne
WINE_TRACE("looking for format at offset %u for column %d\n", format - (buf + 0x15), nc); WINE_TRACE("looking for format at offset %u for column %d\n", format - (buf + 0x15), nc);
if (buf[0x14] == 0x23) if (buf[0x14] == 0x23)
format += 5; format += 5;
if (buf[0x14] == 0x01)
format += 6;
else
format += 4; format += 4;
bits = GET_USHORT(format, 0); format += 2; bits = GET_USHORT(format, 0); format += 2;
if (bits & 0x0001) fetch_long(&format); if (bits & 0x0001) fetch_long(&format);
@ -941,7 +977,7 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne
while (text < text_end && format < format_end) while (text < text_end && format < format_end)
{ {
//WINE_TRACE("Got text: %s (%p/%p - %p/%p)\n", wine_dbgstr_a(text), text, text_end, format, format_end); WINE_TRACE("Got text: %s (%p/%p - %p/%p)\n", wine_dbgstr_a(text), text, text_end, format, format_end);
textsize = strlen(text) + 1; textsize = strlen(text) + 1;
if (textsize > 1) if (textsize > 1)
{ {
@ -1104,6 +1140,13 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne
case 0xE0: case 0xE0:
case 0xE1: case 0xE1:
WINE_WARN("jump topic 1 => %u\n", GET_UINT(format, 1)); WINE_WARN("jump topic 1 => %u\n", GET_UINT(format, 1));
HLPFILE_FreeLink(attributes.link);
attributes.link = HLPFILE_AllocLink((*format & 1) ? hlp_link_link : hlp_link_popup,
hlpfile->lpszPath,
GET_UINT(format, 1)-16,
1, -1);
format += 5; format += 5;
break; break;
@ -1160,8 +1203,7 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne
} }
} }
} }
if (text_end != (char*)buf + GET_UINT(buf, 0x10) + size) HeapFree(GetProcessHeap(), 0, text_base);
HeapFree(GetProcessHeap(), 0, text_end - size);
return TRUE; return TRUE;
} }
@ -1206,7 +1248,7 @@ static BOOL HLPFILE_ReadFont(HLPFILE* hlpfile)
flag = ref[dscr_offset + i * 11 + 0]; flag = ref[dscr_offset + i * 11 + 0];
family = ref[dscr_offset + i * 11 + 2]; family = ref[dscr_offset + i * 11 + 2];
hlpfile->fonts[i].LogFont.lfHeight = -ref[dscr_offset + i * 11 + 1] / 2; hlpfile->fonts[i].LogFont.lfHeight = -ref[dscr_offset + i * 11 + 1] / 2 - 3;
hlpfile->fonts[i].LogFont.lfWidth = 0; hlpfile->fonts[i].LogFont.lfWidth = 0;
hlpfile->fonts[i].LogFont.lfEscapement = 0; hlpfile->fonts[i].LogFont.lfEscapement = 0;
hlpfile->fonts[i].LogFont.lfOrientation = 0; hlpfile->fonts[i].LogFont.lfOrientation = 0;
@ -1214,7 +1256,7 @@ static BOOL HLPFILE_ReadFont(HLPFILE* hlpfile)
hlpfile->fonts[i].LogFont.lfItalic = (flag & 2) ? TRUE : FALSE; hlpfile->fonts[i].LogFont.lfItalic = (flag & 2) ? TRUE : FALSE;
hlpfile->fonts[i].LogFont.lfUnderline = (flag & 4) ? TRUE : FALSE; hlpfile->fonts[i].LogFont.lfUnderline = (flag & 4) ? TRUE : FALSE;
hlpfile->fonts[i].LogFont.lfStrikeOut = (flag & 8) ? TRUE : FALSE; hlpfile->fonts[i].LogFont.lfStrikeOut = (flag & 8) ? TRUE : FALSE;
hlpfile->fonts[i].LogFont.lfCharSet = ANSI_CHARSET; hlpfile->fonts[i].LogFont.lfCharSet = DEFAULT_CHARSET;
hlpfile->fonts[i].LogFont.lfOutPrecision = OUT_DEFAULT_PRECIS; hlpfile->fonts[i].LogFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
hlpfile->fonts[i].LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS; hlpfile->fonts[i].LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
hlpfile->fonts[i].LogFont.lfQuality = DEFAULT_QUALITY; hlpfile->fonts[i].LogFont.lfQuality = DEFAULT_QUALITY;
@ -1269,7 +1311,6 @@ static BOOL HLPFILE_ReadFont(HLPFILE* hlpfile)
static BOOL HLPFILE_ReadFileToBuffer(HFILE hFile) static BOOL HLPFILE_ReadFileToBuffer(HFILE hFile)
{ {
BYTE header[16], dummy[1]; BYTE header[16], dummy[1];
UINT size;
if (_hread(hFile, header, 16) != 16) {WINE_WARN("header\n"); return FALSE;}; if (_hread(hFile, header, 16) != 16) {WINE_WARN("header\n"); return FALSE;};
@ -1277,88 +1318,66 @@ static BOOL HLPFILE_ReadFileToBuffer(HFILE hFile)
if (GET_UINT(header, 0) != 0x00035F3F) if (GET_UINT(header, 0) != 0x00035F3F)
{WINE_WARN("wrong header\n"); return FALSE;}; {WINE_WARN("wrong header\n"); return FALSE;};
size = GET_UINT(header, 12); file_buffer_size = GET_UINT(header, 12);
file_buffer = HeapAlloc(GetProcessHeap(), 0, size + 1); file_buffer = HeapAlloc(GetProcessHeap(), 0, file_buffer_size + 1);
if (!file_buffer) return FALSE; if (!file_buffer) return FALSE;
memcpy(file_buffer, header, 16); memcpy(file_buffer, header, 16);
if (_hread(hFile, file_buffer + 16, size - 16) != size - 16) if (_hread(hFile, file_buffer + 16, file_buffer_size - 16) != file_buffer_size - 16)
{WINE_WARN("filesize1\n"); return FALSE;}; {WINE_WARN("filesize1\n"); return FALSE;};
if (_hread(hFile, dummy, 1) != 0) WINE_WARN("filesize2\n"); if (_hread(hFile, dummy, 1) != 0) WINE_WARN("filesize2\n");
file_buffer[size] = '\0'; /* FIXME: was '0', sounds ackward to me */ file_buffer[file_buffer_size] = '\0'; /* FIXME: was '0', sounds ackward to me */
return TRUE; return TRUE;
} }
/**************************************************************************
* comp_FindSubFile
*
* HLPFILE_BPTreeCompare function for HLPFILE directory.
*
*/
static int comp_FindSubFile(void *p, const void *key,
int leaf, void** next)
{
*next = (char *)p+strlen(p)+(leaf?5:3);
WINE_TRACE("Comparing '%s' with '%s'\n", (char *)p, (char *)key);
return strcmp(p, key);
}
/*********************************************************************** /***********************************************************************
* *
* HLPFILE_FindSubFile * HLPFILE_FindSubFile
*/ */
static BOOL HLPFILE_FindSubFile(LPCSTR name, BYTE **subbuf, BYTE **subend) static BOOL HLPFILE_FindSubFile(LPCSTR name, BYTE **subbuf, BYTE **subend)
{ {
BYTE *root = file_buffer + GET_UINT(file_buffer, 4);
BYTE *end = file_buffer + GET_UINT(file_buffer, 12);
BYTE *ptr; BYTE *ptr;
BYTE *bth;
unsigned pgsize; WINE_TRACE("looking for file '%s'\n", name);
unsigned pglast; ptr = HLPFILE_BPTreeSearch(file_buffer + GET_UINT(file_buffer, 4),
unsigned nentries; name, comp_FindSubFile);
unsigned i, n; if (!ptr) return FALSE;
*subbuf = file_buffer + GET_UINT(ptr, strlen(name)+1);
bth = root + 9; if (*subbuf >= file_buffer + file_buffer_size)
/* FIXME: this should be using the EnumBTree functions from this file */
pgsize = GET_USHORT(bth, 4);
WINE_TRACE("%s => pgsize=%u #pg=%u rootpg=%u #lvl=%u\n",
name, pgsize, GET_USHORT(bth, 30), GET_USHORT(bth, 26), GET_USHORT(bth, 32));
ptr = bth + 38 + GET_USHORT(bth, 26) * pgsize;
for (n = 1; n < GET_USHORT(bth, 32); n++)
{ {
nentries = GET_USHORT(ptr, 2); WINE_ERR("internal file %s does not fit\n", name);
pglast = GET_USHORT(ptr, 4); return FALSE;
WINE_TRACE("[%u]: #entries=%u next=%u\n", n, nentries, pglast);
ptr += 6;
for (i = 0; i < nentries; i++)
{
char *str = (char*) ptr;
WINE_TRACE("<= %s\n", str);
if (strcmp(name, str) < 0) break;
ptr += strlen(str) + 1;
pglast = GET_USHORT(ptr, 0);
ptr += 2;
} }
ptr = bth + 38 + pglast * pgsize;
}
nentries = GET_USHORT(ptr, 2);
ptr += 8;
for (i = 0; i < nentries; i++)
{
char* fname = (char*)ptr;
ptr += strlen(fname) + 1;
WINE_TRACE("\\- %s\n", fname);
if (strcmp(fname, name) == 0)
{
*subbuf = file_buffer + GET_UINT(ptr, 0);
*subend = *subbuf + GET_UINT(*subbuf, 0); *subend = *subbuf + GET_UINT(*subbuf, 0);
if (file_buffer > *subbuf || *subbuf > *subend || *subend > end) if (*subend > file_buffer + file_buffer_size)
{ {
WINE_WARN("size mismatch\n"); WINE_ERR("internal file %s does not fit\n", name);
return FALSE;
}
if (GET_UINT(*subbuf, 0) < GET_UINT(*subbuf, 4) + 9)
{
WINE_ERR("invalid size provided for internal file %s\n", name);
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
} }
ptr += 4;
}
return FALSE;
}
/*********************************************************************** /***********************************************************************
* *
@ -1384,8 +1403,31 @@ static BOOL HLPFILE_SystemCommands(HLPFILE* hlpfile)
magic, major, minor, flags); magic, major, minor, flags);
if (magic != 0x036C || major != 1) if (magic != 0x036C || major != 1)
{WINE_WARN("Wrong system header\n"); return FALSE;} {WINE_WARN("Wrong system header\n"); return FALSE;}
if (minor <= 16) {WINE_WARN("too old file format (NIY)\n"); return FALSE;} if (minor <= 16)
if (flags & 8) {WINE_WARN("Unsupported yet page size\n"); return FALSE;} {
hlpfile->tbsize = 0x800;
hlpfile->compressed = 0;
}
else if (flags == 0)
{
hlpfile->tbsize = 0x1000;
hlpfile->compressed = 0;
}
else if (flags == 4)
{
hlpfile->tbsize = 0x1000;
hlpfile->compressed = 1;
}
else
{
hlpfile->tbsize = 0x800;
hlpfile->compressed = 1;
}
if (hlpfile->compressed)
hlpfile->dsize = 0x4000;
else
hlpfile->dsize = hlpfile->tbsize - 0x0C;
hlpfile->version = minor; hlpfile->version = minor;
hlpfile->flags = flags; hlpfile->flags = flags;
@ -1549,23 +1591,39 @@ static BYTE *HLPFILE_UncompressLZ77(BYTE *ptr, BYTE *end, BYTE *newptr)
*/ */
static BOOL HLPFILE_UncompressLZ77_Phrases(HLPFILE* hlpfile) static BOOL HLPFILE_UncompressLZ77_Phrases(HLPFILE* hlpfile)
{ {
UINT i, num, dec_size; UINT i, num, dec_size, head_size;
BYTE *buf, *end; BYTE *buf, *end;
if (!HLPFILE_FindSubFile("|Phrases", &buf, &end)) return FALSE; if (!HLPFILE_FindSubFile("|Phrases", &buf, &end)) return FALSE;
if (hlpfile->version <= 16)
head_size = 13;
else
head_size = 17;
num = phrases.num = GET_USHORT(buf, 9); num = phrases.num = GET_USHORT(buf, 9);
if (buf + 2 * num + 0x13 >= end) {WINE_WARN("1a\n"); return FALSE;}; if (buf + 2 * num + 0x13 >= end) {WINE_WARN("1a\n"); return FALSE;};
if (hlpfile->version <= 16)
dec_size = end - buf - 15 - 2 * num;
else
dec_size = HLPFILE_UncompressedLZ77_Size(buf + 0x13 + 2 * num, end); dec_size = HLPFILE_UncompressedLZ77_Size(buf + 0x13 + 2 * num, end);
phrases.offsets = HeapAlloc(GetProcessHeap(), 0, sizeof(unsigned) * (num + 1)); phrases.offsets = HeapAlloc(GetProcessHeap(), 0, sizeof(unsigned) * (num + 1));
phrases.buffer = HeapAlloc(GetProcessHeap(), 0, dec_size); phrases.buffer = HeapAlloc(GetProcessHeap(), 0, dec_size);
if (!phrases.offsets || !phrases.buffer) return FALSE; if (!phrases.offsets || !phrases.buffer)
{
HeapFree(GetProcessHeap(), 0, phrases.offsets);
HeapFree(GetProcessHeap(), 0, phrases.buffer);
return FALSE;
}
for (i = 0; i <= num; i++) for (i = 0; i <= num; i++)
phrases.offsets[i] = GET_USHORT(buf, 0x11 + 2 * i) - 2 * num - 2; phrases.offsets[i] = GET_USHORT(buf, head_size + 2 * i) - 2 * num - 2;
if (hlpfile->version <= 16)
memcpy(phrases.buffer, buf + 15 + 2*num, dec_size);
else
HLPFILE_UncompressLZ77(buf + 0x13 + 2 * num, end, (BYTE*)phrases.buffer); HLPFILE_UncompressLZ77(buf + 0x13 + 2 * num, end, (BYTE*)phrases.buffer);
hlpfile->hasPhrases = TRUE; hlpfile->hasPhrases = TRUE;
@ -1578,12 +1636,13 @@ static BOOL HLPFILE_UncompressLZ77_Phrases(HLPFILE* hlpfile)
*/ */
static BOOL HLPFILE_Uncompress_Phrases40(HLPFILE* hlpfile) static BOOL HLPFILE_Uncompress_Phrases40(HLPFILE* hlpfile)
{ {
UINT num, dec_size, cpr_size; UINT num;
INT dec_size, cpr_size;
BYTE *buf_idx, *end_idx; BYTE *buf_idx, *end_idx;
BYTE *buf_phs, *end_phs; BYTE *buf_phs, *end_phs;
short i, n;
long* ptr, mask = 0; long* ptr, mask = 0;
unsigned short bc; unsigned int i;
unsigned short bc, n;
if (!HLPFILE_FindSubFile("|PhrIndex", &buf_idx, &end_idx) || if (!HLPFILE_FindSubFile("|PhrIndex", &buf_idx, &end_idx) ||
!HLPFILE_FindSubFile("|PhrImage", &buf_phs, &end_phs)) return FALSE; !HLPFILE_FindSubFile("|PhrImage", &buf_phs, &end_phs)) return FALSE;
@ -1616,7 +1675,12 @@ static BOOL HLPFILE_Uncompress_Phrases40(HLPFILE* hlpfile)
phrases.offsets = HeapAlloc(GetProcessHeap(), 0, sizeof(unsigned) * (num + 1)); phrases.offsets = HeapAlloc(GetProcessHeap(), 0, sizeof(unsigned) * (num + 1));
phrases.buffer = HeapAlloc(GetProcessHeap(), 0, dec_size); phrases.buffer = HeapAlloc(GetProcessHeap(), 0, dec_size);
if (!phrases.offsets || !phrases.buffer) return FALSE; if (!phrases.offsets || !phrases.buffer)
{
HeapFree(GetProcessHeap(), 0, phrases.offsets);
HeapFree(GetProcessHeap(), 0, phrases.buffer);
return FALSE;
}
#define getbit() (ptr += (mask < 0), mask = mask*2 + (mask<=0), (*ptr & mask) != 0) #define getbit() (ptr += (mask < 0), mask = mask*2 + (mask<=0), (*ptr & mask) != 0)
@ -1638,7 +1702,7 @@ static BOOL HLPFILE_Uncompress_Phrases40(HLPFILE* hlpfile)
else else
HLPFILE_UncompressLZ77(buf_phs + 9, end_phs, (BYTE*)phrases.buffer); HLPFILE_UncompressLZ77(buf_phs + 9, end_phs, (BYTE*)phrases.buffer);
hlpfile->hasPhrases = FALSE; hlpfile->hasPhrases40 = TRUE;
return TRUE; return TRUE;
} }
@ -1649,28 +1713,26 @@ static BOOL HLPFILE_Uncompress_Phrases40(HLPFILE* hlpfile)
static BOOL HLPFILE_Uncompress_Topic(HLPFILE* hlpfile) static BOOL HLPFILE_Uncompress_Topic(HLPFILE* hlpfile)
{ {
BYTE *buf, *ptr, *end, *newptr; BYTE *buf, *ptr, *end, *newptr;
int i, newsize = 0; unsigned int i, newsize = 0;
unsigned int topic_size;
if (!HLPFILE_FindSubFile("|TOPIC", &buf, &end)) if (!HLPFILE_FindSubFile("|TOPIC", &buf, &end))
{WINE_WARN("topic0\n"); return FALSE;} {WINE_WARN("topic0\n"); return FALSE;}
switch (hlpfile->flags & (8|4)) buf += 9; /* Skip file header */
topic_size = end - buf;
if (hlpfile->compressed)
{ {
case 8: topic.wMapLen = (topic_size - 1) / hlpfile->tbsize + 1;
WINE_FIXME("Unsupported format\n");
return FALSE;
case 4:
buf += 9;
topic.wMapLen = (end - buf - 1) / 0x1000 + 1;
for (i = 0; i < topic.wMapLen; i++) for (i = 0; i < topic.wMapLen; i++)
{ {
ptr = buf + i * 0x1000; ptr = buf + i * hlpfile->tbsize;
/* I don't know why, it's necessary for printman.hlp */ /* I don't know why, it's necessary for printman.hlp */
if (ptr + 0x44 > end) ptr = end - 0x44; if (ptr + 0x44 > end) ptr = end - 0x44;
newsize += HLPFILE_UncompressedLZ77_Size(ptr + 0xc, min(end, ptr + 0x1000)); newsize += HLPFILE_UncompressedLZ77_Size(ptr + 0xc, min(end, ptr + hlpfile->tbsize));
} }
topic.map = HeapAlloc(GetProcessHeap(), 0, topic.map = HeapAlloc(GetProcessHeap(), 0,
@ -1681,35 +1743,30 @@ static BOOL HLPFILE_Uncompress_Topic(HLPFILE* hlpfile)
for (i = 0; i < topic.wMapLen; i++) for (i = 0; i < topic.wMapLen; i++)
{ {
ptr = buf + i * 0x1000; ptr = buf + i * hlpfile->tbsize;
if (ptr + 0x44 > end) ptr = end - 0x44; if (ptr + 0x44 > end) ptr = end - 0x44;
topic.map[i] = newptr; topic.map[i] = newptr;
newptr = HLPFILE_UncompressLZ77(ptr + 0xc, min(end, ptr + 0x1000), newptr); newptr = HLPFILE_UncompressLZ77(ptr + 0xc, min(end, ptr + hlpfile->tbsize), newptr);
} }
break; }
case 0: else
/* basically, we need to copy the 0x1000 byte pages (removing the first 0x0C) in {
* one single are in memory /* basically, we need to copy the TopicBlockSize byte pages
* (removing the first 0x0C) in one single area in memory
*/ */
#define DST_LEN (0x1000 - 0x0C) topic.wMapLen = (topic_size - 1) / hlpfile->tbsize + 1;
buf += 9;
newsize = end - buf;
/* number of destination pages */
topic.wMapLen = (newsize - 1) / DST_LEN + 1;
topic.map = HeapAlloc(GetProcessHeap(), 0, topic.map = HeapAlloc(GetProcessHeap(), 0,
topic.wMapLen * (sizeof(topic.map[0]) + DST_LEN)); topic.wMapLen * (sizeof(topic.map[0]) + hlpfile->dsize));
if (!topic.map) return FALSE; if (!topic.map) return FALSE;
newptr = (BYTE*)(topic.map + topic.wMapLen); newptr = (BYTE*)(topic.map + topic.wMapLen);
topic.end = newptr + newsize; topic.end = newptr + topic_size;
for (i = 0; i < topic.wMapLen; i++) for (i = 0; i < topic.wMapLen; i++)
{ {
topic.map[i] = newptr + i * DST_LEN; topic.map[i] = newptr + i * hlpfile->dsize;
memcpy(topic.map[i], buf + i * 0x1000 + 0x0C, DST_LEN); memcpy(topic.map[i], buf + i * hlpfile->tbsize + 0x0C, hlpfile->dsize);
} }
#undef DST_LEN
break;
} }
return TRUE; return TRUE;
} }
@ -1761,7 +1818,7 @@ static void HLPFILE_Uncompress2(const BYTE *ptr, const BYTE *end, BYTE *newptr,
static BOOL HLPFILE_Uncompress3(char* dst, const char* dst_end, static BOOL HLPFILE_Uncompress3(char* dst, const char* dst_end,
const BYTE* src, const BYTE* src_end) const BYTE* src, const BYTE* src_end)
{ {
int idx, len; unsigned int idx, len;
for (; src < src_end; src++) for (; src < src_end; src++)
{ {
@ -1849,63 +1906,114 @@ static void HLPFILE_UncompressRLE(const BYTE* src, const BYTE* end, BYTE** dst,
*dst - (sdst - dstsz), dstsz); *dst - (sdst - dstsz), dstsz);
} }
/****************************************************************** /**************************************************************************
* HLPFILE_EnumBTreeLeaves * HLPFILE_BPTreeSearch
* *
* Searches for an element in B+ tree
*
* PARAMS
* buf [I] pointer to the embedded file structured as a B+ tree
* key [I] pointer to data to find
* comp [I] compare function
*
* RETURNS
* Pointer to block identified by key, or NULL if failure.
* *
*/ */
static void HLPFILE_EnumBTreeLeaves(const BYTE* buf, const BYTE* end, unsigned (*fn)(const BYTE*, void*), void* user) void* HLPFILE_BPTreeSearch(BYTE* buf, const void* key,
HLPFILE_BPTreeCompare comp)
{ {
unsigned psize, pnext; unsigned magic;
unsigned num, nlvl; unsigned page_size;
const BYTE* ptr; unsigned cur_page;
unsigned level;
BYTE *pages, *ptr, *newptr;
int i, entries;
int ret;
num = GET_UINT(buf, 9 + 34); magic = GET_USHORT(buf, 9);
psize = GET_USHORT(buf, 9 + 4); if (magic != 0x293B)
nlvl = GET_USHORT(buf, 9 + 32);
pnext = GET_USHORT(buf, 9 + 26);
WINE_TRACE("BTree: #entries=%u pagSize=%u #levels=%u #pages=%u root=%u struct%16s\n",
num, psize, nlvl, GET_USHORT(buf, 9 + 30), pnext, buf + 9 + 6);
if (!num) return;
while (--nlvl > 0)
{ {
ptr = (buf + 9 + 38) + pnext * psize; WINE_ERR("Invalid magic in B+ tree: 0x%x\n", magic);
WINE_TRACE("BTree: (index[%u]) unused=%u #entries=%u <%u\n", return NULL;
pnext, GET_USHORT(ptr, 0), GET_USHORT(ptr, 2), GET_USHORT(ptr, 4));
pnext = GET_USHORT(ptr, 4);
} }
while (pnext != 0xFFFF) page_size = GET_USHORT(buf, 9+4);
cur_page = GET_USHORT(buf, 9+26);
level = GET_USHORT(buf, 9+32);
pages = buf + 9 + 38;
while (--level > 0)
{ {
const BYTE* node_page; ptr = pages + cur_page*page_size;
unsigned short limit; entries = GET_SHORT(ptr, 2);
ptr += 6;
node_page = ptr = (buf + 9 + 38) + pnext * psize; for (i = 0; i < entries; i++)
limit = GET_USHORT(ptr, 2); {
WINE_TRACE("BTree: (leaf [%u]) unused=%u #entries=%u <%u >%u\n", if (comp(ptr, key, 0, (void **)&newptr) > 0) break;
pnext, GET_USHORT(ptr, 0), limit, GET_USHORT(ptr, 4), GET_USHORT(ptr, 6)); ptr = newptr;
}
cur_page = GET_USHORT(ptr-2, 0);
}
ptr = pages + cur_page*page_size;
entries = GET_SHORT(ptr, 2);
ptr += 8; ptr += 8;
while (limit--) for (i = 0; i < entries; i++)
ptr += (fn)(ptr, user);
pnext = GET_USHORT(node_page, 6);
}
}
struct myfncb {
HLPFILE* hlpfile;
int i;
};
static unsigned myfn(const BYTE* ptr, void* user)
{ {
struct myfncb* m = user; ret = comp(ptr, key, 1, (void **)&newptr);
if (ret == 0) return ptr;
m->hlpfile->Context[m->i].lHash = GET_UINT(ptr, 0); if (ret > 0) return NULL;
m->hlpfile->Context[m->i].offset = GET_UINT(ptr, 4); ptr = newptr;
m->i++;
return 8;
} }
return NULL;
}
/**************************************************************************
* HLPFILE_BPTreeEnum
*
* Enumerates elements in B+ tree.
*
* PARAMS
* buf [I] pointer to the embedded file structured as a B+ tree
* cb [I] compare function
* cookie [IO] cookie for cb function
*/
void HLPFILE_BPTreeEnum(BYTE* buf, HLPFILE_BPTreeCallback cb, void* cookie)
{
unsigned magic;
unsigned page_size;
unsigned cur_page;
unsigned level;
BYTE *pages, *ptr, *newptr;
int i, entries;
magic = GET_USHORT(buf, 9);
if (magic != 0x293B)
{
WINE_ERR("Invalid magic in B+ tree: 0x%x\n", magic);
return;
}
page_size = GET_USHORT(buf, 9+4);
cur_page = GET_USHORT(buf, 9+26);
level = GET_USHORT(buf, 9+32);
pages = buf + 9 + 38;
while (--level > 0)
{
ptr = pages + cur_page*page_size;
cur_page = GET_USHORT(ptr, 4);
}
while (cur_page != 0xFFFF)
{
ptr = pages + cur_page*page_size;
entries = GET_SHORT(ptr, 2);
ptr += 8;
for (i = 0; i < entries; i++)
{
cb(ptr, (void **)&newptr, cookie);
ptr = newptr;
}
cur_page = GET_USHORT(pages+cur_page*page_size, 6);
}
}
/*********************************************************************** /***********************************************************************
* *
@ -1914,19 +2022,47 @@ static unsigned myfn(const BYTE* ptr, void* user)
static BOOL HLPFILE_GetContext(HLPFILE *hlpfile) static BOOL HLPFILE_GetContext(HLPFILE *hlpfile)
{ {
BYTE *cbuf, *cend; BYTE *cbuf, *cend;
struct myfncb m;
unsigned clen; unsigned clen;
if (!HLPFILE_FindSubFile("|CONTEXT", &cbuf, &cend)) {WINE_WARN("context0\n"); return FALSE;} if (!HLPFILE_FindSubFile("|CONTEXT", &cbuf, &cend)) {WINE_WARN("context0\n"); return FALSE;}
clen = GET_UINT(cbuf, 0x2b); clen = cend - cbuf;
hlpfile->Context = HeapAlloc(GetProcessHeap(), 0, clen * sizeof(HLPFILE_CONTEXT)); hlpfile->Context = HeapAlloc(GetProcessHeap(), 0, clen);
if (!hlpfile->Context) return FALSE; if (!hlpfile->Context) return FALSE;
hlpfile->wContextLen = clen; memcpy(hlpfile->Context, cbuf, clen);
m.hlpfile = hlpfile; return TRUE;
m.i = 0; }
HLPFILE_EnumBTreeLeaves(cbuf, cend, myfn, &m);
/***********************************************************************
*
* HLPFILE_GetKeywords
*/
static BOOL HLPFILE_GetKeywords(HLPFILE *hlpfile)
{
BYTE *cbuf, *cend;
unsigned clen;
if (!HLPFILE_FindSubFile("|KWBTREE", &cbuf, &cend)) return FALSE;
clen = cend - cbuf;
hlpfile->kwbtree = HeapAlloc(GetProcessHeap(), 0, clen);
if (!hlpfile->kwbtree) return FALSE;
memcpy(hlpfile->kwbtree, cbuf, clen);
if (!HLPFILE_FindSubFile("|KWDATA", &cbuf, &cend))
{
WINE_ERR("corrupted help file: kwbtree present but kwdata absent\n");
HeapFree(GetProcessHeap(), 0, hlpfile->kwbtree);
return FALSE;
}
clen = cend - cbuf;
hlpfile->kwdata = HeapAlloc(GetProcessHeap(), 0, clen);
if (!hlpfile->kwdata)
{
HeapFree(GetProcessHeap(), 0, hlpfile->kwdata);
return FALSE;
}
memcpy(hlpfile->kwdata, cbuf, clen);
return TRUE; return TRUE;
} }

View file

@ -3,6 +3,7 @@
* *
* Copyright 1996 Ulrich Schmid * Copyright 1996 Ulrich Schmid
* 2002 Eric Pouech * 2002 Eric Pouech
* 2007 Kirill K. Smirnov
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -102,12 +103,6 @@ typedef struct tagHlpFilePage
struct tagHlpFileFile* file; struct tagHlpFileFile* file;
} HLPFILE_PAGE; } HLPFILE_PAGE;
typedef struct
{
LONG lHash;
unsigned long offset;
} HLPFILE_CONTEXT;
typedef struct typedef struct
{ {
LONG lMap; LONG lMap;
@ -127,9 +122,11 @@ typedef struct tagHlpFileFile
LPSTR lpszTitle; LPSTR lpszTitle;
LPSTR lpszCopyright; LPSTR lpszCopyright;
HLPFILE_PAGE* first_page; HLPFILE_PAGE* first_page;
HLPFILE_PAGE* last_page;
HLPFILE_MACRO* first_macro; HLPFILE_MACRO* first_macro;
unsigned wContextLen; BYTE* Context;
HLPFILE_CONTEXT* Context; BYTE* kwbtree;
BYTE* kwdata;
unsigned wMapLen; unsigned wMapLen;
HLPFILE_MAP* Map; HLPFILE_MAP* Map;
unsigned long contents_start; unsigned long contents_start;
@ -141,7 +138,11 @@ typedef struct tagHlpFileFile
unsigned short version; unsigned short version;
unsigned short flags; unsigned short flags;
unsigned hasPhrases; /* Phrases or PhrIndex/PhrImage */ unsigned short tbsize; /* topic block size */
unsigned short dsize; /* decompress size */
unsigned short compressed;
unsigned hasPhrases; /* file has |Phrases */
unsigned hasPhrases40; /* file has |PhrIndex/|PhrImage */
unsigned numBmps; unsigned numBmps;
HBITMAP* bmps; HBITMAP* bmps;
@ -153,6 +154,28 @@ typedef struct tagHlpFileFile
HLPFILE_WINDOWINFO* windows; HLPFILE_WINDOWINFO* windows;
} HLPFILE; } HLPFILE;
/*
* Compare function type for HLPFILE_BPTreeSearch function.
*
* PARAMS
* p [I] pointer to testing block (key + data)
* key [I] pointer to key value to look for
* leaf [I] whether this function called for index of leaf page
* next [O] pointer to pointer to next block
*/
typedef int (*HLPFILE_BPTreeCompare)(void *p, const void *key,
int leaf, void **next);
/*
* Callback function type for HLPFILE_BPTreeEnum function.
*
* PARAMS
* p [I] pointer to data block
* next [O] pointer to pointer to next block
* cookie [IO] cookie data
*/
typedef void (*HLPFILE_BPTreeCallback)(void *p, void **next, void *cookie);
HLPFILE* HLPFILE_ReadHlpFile(LPCSTR lpszPath); HLPFILE* HLPFILE_ReadHlpFile(LPCSTR lpszPath);
HLPFILE_PAGE* HLPFILE_Contents(HLPFILE* hlpfile); HLPFILE_PAGE* HLPFILE_Contents(HLPFILE* hlpfile);
HLPFILE_PAGE* HLPFILE_PageByHash(HLPFILE* hlpfile, LONG lHash); HLPFILE_PAGE* HLPFILE_PageByHash(HLPFILE* hlpfile, LONG lHash);
@ -161,3 +184,6 @@ HLPFILE_PAGE* HLPFILE_PageByOffset(HLPFILE* hlpfile, LONG offset);
LONG HLPFILE_Hash(LPCSTR lpszContext); LONG HLPFILE_Hash(LPCSTR lpszContext);
void HLPFILE_FreeLink(HLPFILE_LINK* link); void HLPFILE_FreeLink(HLPFILE_LINK* link);
void HLPFILE_FreeHlpFile(HLPFILE*); void HLPFILE_FreeHlpFile(HLPFILE*);
void* HLPFILE_BPTreeSearch(BYTE*, const void*, HLPFILE_BPTreeCompare);
void HLPFILE_BPTreeEnum(BYTE*, HLPFILE_BPTreeCallback cb, void *cookie);

View file

@ -1,8 +1,7 @@
/* /*
* Help Viewer * Help Viewer Bulgarian resource
* *
* Copyright 1996 Ulrich Schmid * Copyright 2005 Milko Krachounov
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -19,59 +18,52 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
BEGIN {
POPUP "&Ôàéë" POPUP "&Ôàéë" {
BEGIN MENUITEM "&Îòâîðè", MNID_FILE_OPEN
MENUITEM "&Îòâàðÿíå", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Ïå÷àò", MNID_FILE_PRINT MENUITEM "&Ïå÷àò", MNID_FILE_PRINT
MENUITEM "&Íàñòðîéêè íà ïå÷àòà÷à...", MNID_FILE_SETUP MENUITEM "&Íàñòðîéêà íà ïðèíòåðà...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Èç&õîä", MNID_FILE_EXIT MENUITEM "&Èçõîä", MNID_FILE_EXIT
END }
POPUP "&Îáðàáîòêà" POPUP "&Ðåäàêòèðàíå" {
BEGIN MENUITEM "&Êîïèðàé...", MNID_EDIT_COPYDLG
MENUITEM "Çà&ïîìíÿíå", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Ðàçÿñíÿâàíå...", MNID_EDIT_ANNOTATE MENUITEM "&Àíîòèðàé...", MNID_EDIT_ANNOTATE
END }
POPUP "&Îòìåòêà" POPUP "&Îòìåòêè" {
BEGIN MENUITEM "&Çàäàé...", MNID_BKMK_DEFINE
MENUITEM "&Çàäàâàíå...", MNID_BKMK_DEFINE }
END POPUP "&Ïîìîù" {
POPUP "Ïîìî&ù" MENUITEM "Ïîìîù &çà ïîìîùòà", MNID_HELP_HELPON
BEGIN MENUITEM "Âèíàãè îò&ãîðå", MNID_HELP_HELPTOP
MENUITEM "Ïîìîù çà &ïîìîùòà", MNID_HELP_HELPON
MENUITEM "Âèíàãè îòãîðå", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Ñâåäåíèÿ...", MNID_HELP_ABOUT MENUITEM "&Èíôîðìàöèÿ...", MNID_HELP_ABOUT
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Çà...", MNID_HELP_WINE MENUITEM "&Îòíîñíî WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE {
BEGIN STID_WINE_HELP, "WINE Ïîìîù"
STID_WINE_HELP, "Ïîìîù"
STID_WHERROR, "ÃÐÅØÊÀ" STID_WHERROR, "ÃÐÅØÊÀ"
STID_WARNING, "ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ" STID_WARNING, "ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ"
STID_INFO, "Ñâåäåíèå" STID_INFO, "Èíôîðìàöèÿ"
STID_NOT_IMPLEMENTED, "Íå å ãîòîâî" STID_NOT_IMPLEMENTED, "Íå å ðåàëèçèðàíî"
STID_HLPFILE_ERROR_s, "Ãðåøêà ïðè ÷åòåíå íà ïîìîùåí ôàéë `%s'" STID_HLPFILE_ERROR_s, "Ãðåøêà ïðè ÷åòåíå íà ïîìîùíèÿ ôàéë `%s'"
STID_CONTENTS, "&Ñúäúðæàíèå" STID_CONTENTS, "&Ñúäúðæàíèå"
STID_SEARCH, "&Òúðñåíå" STID_SEARCH, "&Òúðñè"
STID_BACK, "Íà&çàä" STID_BACK, "&Íàçàä"
STID_HISTORY, "&Äíåâíèê" STID_HISTORY, "&Èñòîðèÿ"
STID_TOPICS, "&Òåìè" STID_TOPICS, "&Òåìè"
STID_ALL_FILES, "Âñè÷êè ôàéëîâå (*.*)" STID_ALL_FILES, "Âñè÷êè ôàéëîâå (*.*)"
STID_HELP_FILES_HLP, "Ïîìîùíè ôàéëîâå (*.hlp)" STID_HELP_FILES_HLP, "Ïîìîùíè ôàéëîâå (*.hlp)"
STID_FILE_NOT_FOUND_s "Íå íàìèðàì '%s'. Èñêàòå ëè äà ãî íàìåðèòå ñàìè?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -23,33 +23,27 @@
/* Czech strings in CP1250 */ /* Czech strings in CP1250 */
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
BEGIN {
POPUP "&Soubor" POPUP "&Soubor" {
BEGIN
MENUITEM "&Otevøít", MNID_FILE_OPEN MENUITEM "&Otevøít", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Tisk", MNID_FILE_PRINT MENUITEM "&Tisk", MNID_FILE_PRINT
MENUITEM "Na&stavení tisku...", MNID_FILE_SETUP MENUITEM "Na&stavení tisku...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Konec", MNID_FILE_EXIT MENUITEM "&Konec", MNID_FILE_EXIT
END }
POPUP "Úprav&y" POPUP "Úprav&y" {
BEGIN
MENUITEM "&Kopírovat...", MNID_EDIT_COPYDLG MENUITEM "&Kopírovat...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "P&oznamenat si...", MNID_EDIT_ANNOTATE MENUITEM "P&oznamenat si...", MNID_EDIT_ANNOTATE
END }
POPUP "&Záložka" POPUP "&Záložka" {
BEGIN
MENUITEM "Pøi&dat...", MNID_BKMK_DEFINE MENUITEM "Pøi&dat...", MNID_BKMK_DEFINE
END }
POPUP "&Nápovìda" POPUP "&Nápovìda" {
BEGIN
MENUITEM "Náp&ovìda k nápovìdì", MNID_HELP_HELPON MENUITEM "Náp&ovìda k nápovìdì", MNID_HELP_HELPON
MENUITEM "Vždy na &vrchu", MNID_HELP_HELPTOP MENUITEM "Vždy na &vrchu", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -57,13 +51,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "O &WINE", MNID_HELP_WINE MENUITEM "O &WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE {
BEGIN
STID_WINE_HELP, "Nápovìda WINE" STID_WINE_HELP, "Nápovìda WINE"
STID_WHERROR, "CHYBA" STID_WHERROR, "CHYBA"
STID_WARNING, "VAROVÁNÍ" STID_WARNING, "VAROVÁNÍ"
@ -78,4 +71,4 @@ STID_TOPICS, "&T
STID_ALL_FILES, "Všechny soubory (*.*)" STID_ALL_FILES, "Všechny soubory (*.*)"
STID_HELP_FILES_HLP, "Soubory nápovìdy (*.hlp)" STID_HELP_FILES_HLP, "Soubory nápovìdy (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -19,33 +19,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
BEGIN {
POPUP "&Filer" POPUP "&Filer" {
BEGIN
MENUITEM "Å&bn...", MNID_FILE_OPEN MENUITEM "Å&bn...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Udskriv emne", MNID_FILE_PRINT MENUITEM "&Udskriv emne", MNID_FILE_PRINT
MENUITEM "&Indstil printer", MNID_FILE_SETUP MENUITEM "&Indstil printer", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Afslut", MNID_FILE_EXIT MENUITEM "&Afslut", MNID_FILE_EXIT
END }
POPUP "&Rediger" POPUP "&Rediger" {
BEGIN
MENUITEM "K&opier...", MNID_EDIT_COPYDLG MENUITEM "K&opier...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Anmærk...", MNID_EDIT_ANNOTATE MENUITEM "&Anmærk...", MNID_EDIT_ANNOTATE
END }
POPUP "Bog&mærke" POPUP "Bog&mærke" {
BEGIN
MENUITEM "&Definer...", MNID_BKMK_DEFINE MENUITEM "&Definer...", MNID_BKMK_DEFINE
END }
POPUP "&Hjælp" POPUP "&Hjælp" {
BEGIN
MENUITEM "&Brug af Hjælp", MNID_HELP_HELPON MENUITEM "&Brug af Hjælp", MNID_HELP_HELPON
MENUITEM "Altid &øverst", MNID_HELP_HELPTOP MENUITEM "Altid &øverst", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -53,14 +47,14 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "Om &WINE", MNID_HELP_WINE MENUITEM "Om &WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "WINE Hjælp" STID_WINE_HELP, "WINE Hjælp"
STID_WHERROR, "FEJL" STID_WHERROR, "FEJL"
STID_WARNING, "ADVARSEL" STID_WARNING, "ADVARSEL"
@ -75,4 +69,4 @@ STID_TOPICS, "To&pics"
STID_ALL_FILES, "Alle filer (*.*)" STID_ALL_FILES, "Alle filer (*.*)"
STID_HELP_FILES_HLP, "Hjælpe filer (*.hlp)" STID_HELP_FILES_HLP, "Hjælpe filer (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -19,33 +19,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
BEGIN {
POPUP "&Datei" POPUP "&Datei" {
BEGIN
MENUITEM "Ö&ffnen...", MNID_FILE_OPEN MENUITEM "Ö&ffnen...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Thema &drucken", MNID_FILE_PRINT MENUITEM "Thema &drucken", MNID_FILE_PRINT
MENUITEM "Drucker&einrichtung...", MNID_FILE_SETUP MENUITEM "Drucker&einrichtung...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Beenden", MNID_FILE_EXIT MENUITEM "&Beenden", MNID_FILE_EXIT
END }
POPUP "&Bearbeiten" POPUP "&Bearbeiten" {
BEGIN
MENUITEM "&Kopieren...", MNID_EDIT_COPYDLG MENUITEM "&Kopieren...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Anmerken...", MNID_EDIT_ANNOTATE MENUITEM "&Anmerken...", MNID_EDIT_ANNOTATE
END }
POPUP "&Lesezeichen" POPUP "&Lesezeichen" {
BEGIN
MENUITEM "&Definieren...", MNID_BKMK_DEFINE MENUITEM "&Definieren...", MNID_BKMK_DEFINE
END }
POPUP "&Hilfe" POPUP "&Hilfe" {
BEGIN
MENUITEM "&Hilfe benutzen", MNID_HELP_HELPON MENUITEM "&Hilfe benutzen", MNID_HELP_HELPON
MENUITEM "Immer im &Vordergrund", MNID_HELP_HELPTOP MENUITEM "Immer im &Vordergrund", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -53,13 +47,13 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Über WINE", MNID_HELP_WINE MENUITEM "&Über WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
BEGIN {
STID_WINE_HELP, "WINE Hilfe" STID_WINE_HELP, "WINE Hilfe"
STID_WHERROR, "FEHLER" STID_WHERROR, "FEHLER"
STID_WARNING, "ACHTUNG" STID_WARNING, "ACHTUNG"
@ -73,5 +67,5 @@ STID_HISTORY, "&Bisher"
STID_TOPICS, "&Topics" STID_TOPICS, "&Topics"
STID_ALL_FILES, "Alle Dateien (*.*)" STID_ALL_FILES, "Alle Dateien (*.*)"
STID_HELP_FILES_HLP, "Hilfe-Dateien (*.hlp)" STID_HELP_FILES_HLP, "Hilfe-Dateien (*.hlp)"
STID_FILE_NOT_FOUND_s "Kann %s' nicht finden. Wollen Sie nach der Datei suchen?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -19,33 +19,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
BEGIN {
POPUP "&File" POPUP "&File" {
BEGIN
MENUITEM "&Open", MNID_FILE_OPEN MENUITEM "&Open", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Print", MNID_FILE_PRINT MENUITEM "&Print", MNID_FILE_PRINT
MENUITEM "Printer &setup...", MNID_FILE_SETUP MENUITEM "Printer &setup...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "E&xit", MNID_FILE_EXIT MENUITEM "E&xit", MNID_FILE_EXIT
END }
POPUP "&Edit" POPUP "&Edit" {
BEGIN
MENUITEM "&Copy...", MNID_EDIT_COPYDLG MENUITEM "&Copy...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Annotate...", MNID_EDIT_ANNOTATE MENUITEM "&Annotate...", MNID_EDIT_ANNOTATE
END }
POPUP "&Bookmark" POPUP "&Bookmark" {
BEGIN
MENUITEM "&Define...", MNID_BKMK_DEFINE MENUITEM "&Define...", MNID_BKMK_DEFINE
END }
POPUP "&Help" POPUP "&Help" {
BEGIN
MENUITEM "Help &on help", MNID_HELP_HELPON MENUITEM "Help &on help", MNID_HELP_HELPON
MENUITEM "Always on &top", MNID_HELP_HELPTOP MENUITEM "Always on &top", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -53,13 +47,22 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&About WINE", MNID_HELP_WINE MENUITEM "&About WINE", MNID_HELP_WINE
#endif #endif
END }
END }
IDD_INDEX DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
CAPTION "Index"
{
LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
PUSHBUTTON "&OK", IDOK, 40, 170, 50, 12
PUSHBUTTON "&Cancel", IDCANCEL, 120, 170, 50, 12
}
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE {
BEGIN
STID_WINE_HELP, "WINE Help" STID_WINE_HELP, "WINE Help"
STID_WHERROR, "ERROR" STID_WHERROR, "ERROR"
STID_WARNING, "WARNING" STID_WARNING, "WARNING"
@ -74,4 +77,4 @@ STID_TOPICS, "&Topics"
STID_ALL_FILES, "All files (*.*)" STID_ALL_FILES, "All files (*.*)"
STID_HELP_FILES_HLP, "Help files (*.hlp)" STID_HELP_FILES_HLP, "Help files (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -21,33 +21,27 @@
/* Cxapelitaj literoj estas en Latin-3 iso8859-3 */ /* Cxapelitaj literoj estas en Latin-3 iso8859-3 */
LANGUAGE LANG_ESPERANTO, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_ESPERANTO, SUBLANG_DEFAULT
BEGIN {
POPUP "&Dosiero" POPUP "&Dosiero" {
BEGIN
MENUITEM "&Malfermu", MNID_FILE_OPEN MENUITEM "&Malfermu", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Presu", MNID_FILE_PRINT MENUITEM "&Presu", MNID_FILE_PRINT
MENUITEM "&Impozu Printilon...", MNID_FILE_SETUP MENUITEM "&Impozu Printilon...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Finu", MNID_FILE_EXIT MENUITEM "&Finu", MNID_FILE_EXIT
END }
POPUP "&Redakto" POPUP "&Redakto" {
BEGIN
MENUITEM "&Kopiu...", MNID_EDIT_COPYDLG MENUITEM "&Kopiu...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Notu...", MNID_EDIT_ANNOTATE MENUITEM "&Notu...", MNID_EDIT_ANNOTATE
END }
POPUP "&Legosigno" POPUP "&Legosigno" {
BEGIN
MENUITEM "&Difinu...", MNID_BKMK_DEFINE MENUITEM "&Difinu...", MNID_BKMK_DEFINE
END }
POPUP "&Helpo" POPUP "&Helpo" {
BEGIN
MENUITEM "&Helpu pri helpo", MNID_HELP_HELPON MENUITEM "&Helpu pri helpo", MNID_HELP_HELPON
MENUITEM "Æiam &supre", MNID_HELP_HELPTOP MENUITEM "Æiam &supre", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -55,13 +49,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Pri WINE", MNID_HELP_WINE MENUITEM "&Pri WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE LANGUAGE LANG_ESPERANTO, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE {
BEGIN
STID_WINE_HELP, "WINE Helpanto" STID_WINE_HELP, "WINE Helpanto"
STID_WHERROR, "ERARO" STID_WHERROR, "ERARO"
STID_WARNING, "ATENTU" STID_WARNING, "ATENTU"
@ -76,4 +69,4 @@ STID_TOPICS, "&Temoj"
STID_ALL_FILES, "Tutaj dosieroj (*.*)" STID_ALL_FILES, "Tutaj dosieroj (*.*)"
STID_HELP_FILES_HLP, "Helpaj dosieroj (*.hlp)" STID_HELP_FILES_HLP, "Helpaj dosieroj (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -20,33 +20,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
BEGIN {
POPUP "&Archivo" POPUP "&Archivo" {
BEGIN
MENUITEM "A&brir...", MNID_FILE_OPEN MENUITEM "A&brir...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Imprimir", MNID_FILE_PRINT MENUITEM "&Imprimir", MNID_FILE_PRINT
MENUITEM "&Configuración impresora...", MNID_FILE_SETUP MENUITEM "&Configuración impresora...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Salir", MNID_FILE_EXIT MENUITEM "&Salir", MNID_FILE_EXIT
END }
POPUP "&Editar" POPUP "&Editar" {
BEGIN
MENUITEM "&Copiar...", MNID_EDIT_COPYDLG MENUITEM "&Copiar...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Anotar...", MNID_EDIT_ANNOTATE MENUITEM "&Anotar...", MNID_EDIT_ANNOTATE
END }
POPUP "&Marcador" POPUP "&Marcador" {
BEGIN
MENUITEM "&Definir...", MNID_BKMK_DEFINE MENUITEM "&Definir...", MNID_BKMK_DEFINE
END }
POPUP "A&yuda" POPUP "A&yuda" {
BEGIN
MENUITEM "&Ayuda sobre la ayuda", MNID_HELP_HELPON MENUITEM "&Ayuda sobre la ayuda", MNID_HELP_HELPON
MENUITEM "&Siempre visible", MNID_HELP_HELPTOP MENUITEM "&Siempre visible", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -54,13 +48,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Acerca de WINE", MNID_HELP_WINE MENUITEM "&Acerca de WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE {
BEGIN
STID_WINE_HELP, "Ayuda de WINE" STID_WINE_HELP, "Ayuda de WINE"
STID_WHERROR, "ERROR" STID_WHERROR, "ERROR"
STID_WARNING, "ADVERTENCIA" STID_WARNING, "ADVERTENCIA"
@ -75,4 +68,4 @@ STID_TOPICS, "&Temas"
STID_ALL_FILES, "Todos los archivos (*.*)" STID_ALL_FILES, "Todos los archivos (*.*)"
STID_HELP_FILES_HLP, "Archivos de ayuda (*.hlp)" STID_HELP_FILES_HLP, "Archivos de ayuda (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -20,33 +20,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
BEGIN {
POPUP "&Tiedosto" POPUP "&Tiedosto" {
BEGIN
MENUITEM "&Avaa...", MNID_FILE_OPEN MENUITEM "&Avaa...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Tulosta", MNID_FILE_PRINT MENUITEM "&Tulosta", MNID_FILE_PRINT
MENUITEM "&Kirjoittimen asetukset...", MNID_FILE_SETUP MENUITEM "&Kirjoittimen asetukset...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Lopeta", MNID_FILE_EXIT MENUITEM "&Lopeta", MNID_FILE_EXIT
END }
POPUP "&Muokkaa" POPUP "&Muokkaa" {
BEGIN
MENUITEM "&Kopioi...", MNID_EDIT_COPYDLG MENUITEM "&Kopioi...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Huomautus...", MNID_EDIT_ANNOTATE MENUITEM "&Huomautus...", MNID_EDIT_ANNOTATE
END }
POPUP "&Kirjanmerkki" POPUP "&Kirjanmerkki" {
BEGIN
MENUITEM "&Aseta...", MNID_BKMK_DEFINE MENUITEM "&Aseta...", MNID_BKMK_DEFINE
END }
POPUP "&Ohje" POPUP "&Ohje" {
BEGIN
MENUITEM "&Ohjeen käyttö", MNID_HELP_HELPON MENUITEM "&Ohjeen käyttö", MNID_HELP_HELPON
MENUITEM "&Aina päällimmäisenä", MNID_HELP_HELPTOP MENUITEM "&Aina päällimmäisenä", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -54,13 +48,13 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Tietoja WINEstä", MNID_HELP_WINE MENUITEM "&Tietoja WINEstä", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "WINE Ohje" STID_WINE_HELP, "WINE Ohje"
STID_WHERROR, "VIRHE" STID_WHERROR, "VIRHE"
STID_WARNING, "VAROITUS" STID_WARNING, "VAROITUS"
@ -75,4 +69,4 @@ STID_TOPICS, "T&opics"
STID_ALL_FILES, "Kaikki tiedostot (*.*)" STID_ALL_FILES, "Kaikki tiedostot (*.*)"
STID_HELP_FILES_HLP, "Ohjetiedostot (*.hlp)" STID_HELP_FILES_HLP, "Ohjetiedostot (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -24,28 +24,24 @@
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
MAIN_MENU MENU MAIN_MENU MENU
BEGIN {
POPUP "&Fichier" POPUP "&Fichier" {
BEGIN
MENUITEM "&Ouvrir", MNID_FILE_OPEN MENUITEM "&Ouvrir", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Im&primer", MNID_FILE_PRINT MENUITEM "Im&primer", MNID_FILE_PRINT
MENUITEM "&Configuration de l'imprimante...", MNID_FILE_SETUP MENUITEM "&Configuration de l'imprimante...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Quitter", MNID_FILE_EXIT MENUITEM "&Quitter", MNID_FILE_EXIT
END }
POPUP "É&dition" POPUP "É&dition" {
BEGIN
MENUITEM "&Copier...", MNID_EDIT_COPYDLG MENUITEM "&Copier...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Annotation...", MNID_EDIT_ANNOTATE MENUITEM "&Annotation...", MNID_EDIT_ANNOTATE
END }
POPUP "&Signet" POPUP "&Signet" {
BEGIN
MENUITEM "&Définir...", MNID_BKMK_DEFINE MENUITEM "&Définir...", MNID_BKMK_DEFINE
END }
POPUP "Aid&e" POPUP "Aid&e" {
BEGIN
MENUITEM "&Utiliser l'aide", MNID_HELP_HELPON MENUITEM "&Utiliser l'aide", MNID_HELP_HELPON
MENUITEM "&Toujours visible", MNID_HELP_HELPTOP MENUITEM "&Toujours visible", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -53,18 +49,18 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "À &propos de WINE", MNID_HELP_WINE MENUITEM "À &propos de WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
BEGIN {
STID_WINE_HELP, "Aide de WINE" STID_WINE_HELP, "Aide de WINE"
STID_WHERROR, "ERREUR" STID_WHERROR, "ERREUR"
STID_WARNING, "ATTENTION" STID_WARNING, "ATTENTION"
STID_INFO, "Information" STID_INFO, "Information"
STID_NOT_IMPLEMENTED, "Non implémenté" STID_NOT_IMPLEMENTED, "Non implémenté"
STID_HLPFILE_ERROR_s, "Une erreur est survenue en lisant le fichier d'aide « %s »" STID_HLPFILE_ERROR_s, "Une erreur est survenue en lisant le fichier d'aide « %s »"
STID_CONTENTS, "&Index" STID_CONTENTS, "&Index"
STID_SEARCH, "&Rechercher" STID_SEARCH, "&Rechercher"
STID_BACK, "&Précédent" STID_BACK, "&Précédent"
@ -72,5 +68,5 @@ STID_HISTORY, "&Historique"
STID_TOPICS, "&Sujets" STID_TOPICS, "&Sujets"
STID_ALL_FILES, "Tous fichiers (*.*)" STID_ALL_FILES, "Tous fichiers (*.*)"
STID_HELP_FILES_HLP, "Fichiers d'aide (*.hlp)" STID_HELP_FILES_HLP, "Fichiers d'aide (*.hlp)"
STID_FILE_NOT_FOUND_s "Impossible de trouver '%s'. Voulez-vous rechercher ce fichier ?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -20,33 +20,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
BEGIN {
POPUP "&Fájl" POPUP "&Fájl" {
BEGIN
MENUITEM "&Megnyitás...", MNID_FILE_OPEN MENUITEM "&Megnyitás...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Nyomtatás", MNID_FILE_PRINT MENUITEM "&Nyomtatás", MNID_FILE_PRINT
MENUITEM "Nyomtató &beállítás...", MNID_FILE_SETUP MENUITEM "Nyomtató &beállítás...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Kilépés", MNID_FILE_EXIT MENUITEM "&Kilépés", MNID_FILE_EXIT
END }
POPUP "&Szerkesztés" POPUP "&Szerkesztés" {
BEGIN
MENUITEM "&Másolás...", MNID_EDIT_COPYDLG MENUITEM "&Másolás...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Jegyzet...", MNID_EDIT_ANNOTATE MENUITEM "&Jegyzet...", MNID_EDIT_ANNOTATE
END }
POPUP "&Könyvjelzõ" POPUP "&Könyvjelzõ" {
BEGIN
MENUITEM "&Definiálás...", MNID_BKMK_DEFINE MENUITEM "&Definiálás...", MNID_BKMK_DEFINE
END }
POPUP "&Súgó" POPUP "&Súgó" {
BEGIN
MENUITEM "&Használat", MNID_HELP_HELPON MENUITEM "&Használat", MNID_HELP_HELPON
MENUITEM "Mindig &legfelül", MNID_HELP_HELPTOP MENUITEM "Mindig &legfelül", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -54,13 +48,13 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&&A WINE-ról", MNID_HELP_WINE MENUITEM "&&A WINE-ról", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "WINE súgó" STID_WINE_HELP, "WINE súgó"
STID_WHERROR, "HIBA" STID_WHERROR, "HIBA"
STID_WARNING, "FIGYELMEZTETÉS" STID_WARNING, "FIGYELMEZTETÉS"
@ -75,4 +69,4 @@ STID_TOPICS, "&T
STID_ALL_FILES, "Minden fájl (*.*)" STID_ALL_FILES, "Minden fájl (*.*)"
STID_HELP_FILES_HLP, "Súgó fájlok (*.hlp)" STID_HELP_FILES_HLP, "Súgó fájlok (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -19,33 +19,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
BEGIN {
POPUP "&File" POPUP "&File" {
BEGIN
MENUITEM "&Apri...", MNID_FILE_OPEN MENUITEM "&Apri...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "S&tampa", MNID_FILE_PRINT MENUITEM "S&tampa", MNID_FILE_PRINT
MENUITEM "&Setup stampante...", MNID_FILE_SETUP MENUITEM "&Setup stampante...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Esci", MNID_FILE_EXIT MENUITEM "&Esci", MNID_FILE_EXIT
END }
POPUP "&Modifica" POPUP "&Modifica" {
BEGIN
MENUITEM "&Copia...", MNID_EDIT_COPYDLG MENUITEM "&Copia...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Annota...", MNID_EDIT_ANNOTATE MENUITEM "&Annota...", MNID_EDIT_ANNOTATE
END }
POPUP "&Segnalibro" POPUP "&Segnalibro" {
BEGIN
MENUITEM "&Definisci...", MNID_BKMK_DEFINE MENUITEM "&Definisci...", MNID_BKMK_DEFINE
END }
POPUP "&?" POPUP "&?" {
BEGIN
MENUITEM "&Aiuto sulla guida", MNID_HELP_HELPON MENUITEM "&Aiuto sulla guida", MNID_HELP_HELPON
MENUITEM "Sempre in primo &piano", MNID_HELP_HELPTOP MENUITEM "Sempre in primo &piano", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -53,13 +47,13 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Informazion su WINE", MNID_HELP_WINE MENUITEM "&Informazion su WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
BEGIN {
STID_WINE_HELP, "Guida di WINE" STID_WINE_HELP, "Guida di WINE"
STID_WHERROR, "ERRORE" STID_WHERROR, "ERRORE"
STID_WARNING, "ATTENZIONE" STID_WARNING, "ATTENZIONE"
@ -73,5 +67,5 @@ STID_HISTORY, "&Cronologia"
STID_TOPICS, "&Argomenti" STID_TOPICS, "&Argomenti"
STID_ALL_FILES, "Tutti i file (*.*)" STID_ALL_FILES, "Tutti i file (*.*)"
STID_HELP_FILES_HLP, "File della Guida (*.hlp)" STID_HELP_FILES_HLP, "File della Guida (*.hlp)"
STID_FILE_NOT_FOUND_s "Impossibile trovare '%s'. Volete indicare voi dove si trova il file?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -19,33 +19,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_KOREAN, SUBLANG_NEUTRAL
BEGIN {
POPUP "파일(&F)" POPUP "파일(&F)" {
BEGIN
MENUITEM "열기(&O)...", MNID_FILE_OPEN MENUITEM "열기(&O)...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "인쇄(&P)", MNID_FILE_PRINT MENUITEM "인쇄(&P)", MNID_FILE_PRINT
MENUITEM "프린터 설정(&S)...", MNID_FILE_SETUP MENUITEM "프린터 설정(&S)...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "종료(&E)", MNID_FILE_EXIT MENUITEM "종료(&E)", MNID_FILE_EXIT
END }
POPUP "편집(&E)" POPUP "편집(&E)" {
BEGIN
MENUITEM "복사(&C)...", MNID_EDIT_COPYDLG MENUITEM "복사(&C)...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "주석(&A)...", MNID_EDIT_ANNOTATE MENUITEM "주석(&A)...", MNID_EDIT_ANNOTATE
END }
POPUP "책갈피(&B)" POPUP "책갈피(&B)" {
BEGIN
MENUITEM "정의(&D)...", MNID_BKMK_DEFINE MENUITEM "정의(&D)...", MNID_BKMK_DEFINE
END }
POPUP "도움말(&H)" POPUP "도움말(&H)" {
BEGIN
MENUITEM "도움말 사용법(&O)", MNID_HELP_HELPON MENUITEM "도움말 사용법(&O)", MNID_HELP_HELPON
MENUITEM "항상 위(&T)", MNID_HELP_HELPTOP MENUITEM "항상 위(&T)", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -53,13 +47,13 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "Wine에 관하여(&A)", MNID_HELP_WINE MENUITEM "Wine에 관하여(&A)", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_KOREAN, SUBLANG_NEUTRAL
BEGIN {
STID_WINE_HELP, "Wine 도움말" STID_WINE_HELP, "Wine 도움말"
STID_WHERROR, "오류" STID_WHERROR, "오류"
STID_WARNING, "경고" STID_WARNING, "경고"
@ -74,4 +68,4 @@ STID_TOPICS, "
STID_ALL_FILES, "모든 파일 (*.*)" STID_ALL_FILES, "모든 파일 (*.*)"
STID_HELP_FILES_HLP, "도움말 파일 (*.hlp)" STID_HELP_FILES_HLP, "도움말 파일 (*.hlp)"
STID_FILE_NOT_FOUND_s "%s을 찾을 수 없습니다'. 이 파일을 스스로 찾겠습니까?" STID_FILE_NOT_FOUND_s "%s을 찾을 수 없습니다'. 이 파일을 스스로 찾겠습니까?"
END }

View file

@ -18,33 +18,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
BEGIN {
POPUP "&Fil" POPUP "&Fil" {
BEGIN
MENUITEM "&Åpne", MNID_FILE_OPEN MENUITEM "&Åpne", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Skriv &ut", MNID_FILE_PRINT MENUITEM "Skriv &ut", MNID_FILE_PRINT
MENUITEM "Opp&sett av skriveren . . .", MNID_FILE_SETUP MENUITEM "Opp&sett av skriveren . . .", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Avslutt", MNID_FILE_EXIT MENUITEM "&Avslutt", MNID_FILE_EXIT
END }
POPUP "R&ediger" POPUP "R&ediger" {
BEGIN
MENUITEM "&Kopier . . .", MNID_EDIT_COPYDLG MENUITEM "&Kopier . . .", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "K&ommenter . . .", MNID_EDIT_ANNOTATE MENUITEM "K&ommenter . . .", MNID_EDIT_ANNOTATE
END }
POPUP "&Bokmerke" POPUP "&Bokmerke" {
BEGIN
MENUITEM "&Definer . . .", MNID_BKMK_DEFINE MENUITEM "&Definer . . .", MNID_BKMK_DEFINE
END }
POPUP "&Hjelp" POPUP "&Hjelp" {
BEGIN
MENUITEM "&Hjelp til Hjelp", MNID_HELP_HELPON MENUITEM "&Hjelp til Hjelp", MNID_HELP_HELPON
MENUITEM "All&tid øverst", MNID_HELP_HELPTOP MENUITEM "All&tid øverst", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -52,12 +46,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&om WINE", MNID_HELP_WINE MENUITEM "&om WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL
BEGIN {
STID_WINE_HELP, "Hjelp" STID_WINE_HELP, "Hjelp"
STID_WHERROR, "FEIL" STID_WHERROR, "FEIL"
STID_WARNING, "ADVARSEL" STID_WARNING, "ADVARSEL"
@ -72,4 +66,4 @@ STID_TOPICS, "&Emner"
STID_ALL_FILES, "Alle filer (*.*)" STID_ALL_FILES, "Alle filer (*.*)"
STID_HELP_FILES_HLP, "Hjelp-filer (*.hlp)" STID_HELP_FILES_HLP, "Hjelp-filer (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -18,33 +18,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
BEGIN {
POPUP "&Bestand" POPUP "&Bestand" {
BEGIN
MENUITEM "&Openen", MNID_FILE_OPEN MENUITEM "&Openen", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Af&drukken", MNID_FILE_PRINT MENUITEM "Af&drukken", MNID_FILE_PRINT
MENUITEM "&Printerinstellingen...", MNID_FILE_SETUP MENUITEM "&Printerinstellingen...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Afsluiten", MNID_FILE_EXIT MENUITEM "&Afsluiten", MNID_FILE_EXIT
END }
POPUP "&Bewerken" POPUP "&Bewerken" {
BEGIN
MENUITEM "&Kopiëren...", MNID_EDIT_COPYDLG MENUITEM "&Kopiëren...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Annoteren...", MNID_EDIT_ANNOTATE MENUITEM "&Annoteren...", MNID_EDIT_ANNOTATE
END }
POPUP "&Favorieten" POPUP "&Favorieten" {
BEGIN
MENUITEM "&Aanmaken...", MNID_BKMK_DEFINE MENUITEM "&Aanmaken...", MNID_BKMK_DEFINE
END }
POPUP "&Help" POPUP "&Help" {
BEGIN
MENUITEM "Hulp &bij help", MNID_HELP_HELPON MENUITEM "Hulp &bij help", MNID_HELP_HELPON
MENUITEM "Altijd &zichtbaar", MNID_HELP_HELPTOP MENUITEM "Altijd &zichtbaar", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -52,12 +46,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Over WINE", MNID_HELP_WINE MENUITEM "&Over WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
BEGIN {
STID_WINE_HELP, "WINE Help" STID_WINE_HELP, "WINE Help"
STID_WHERROR, "FOUT" STID_WHERROR, "FOUT"
STID_WARNING, "WAARSCHUWING" STID_WARNING, "WAARSCHUWING"
@ -72,4 +66,4 @@ STID_TOPICS, "&Onderwerpen"
STID_ALL_FILES, "Alle bestanden (*.*)" STID_ALL_FILES, "Alle bestanden (*.*)"
STID_HELP_FILES_HLP, "Helpbestanden (*.hlp)" STID_HELP_FILES_HLP, "Helpbestanden (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -20,33 +20,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
BEGIN {
POPUP "&Plik" POPUP "&Plik" {
BEGIN
MENUITEM "&Otwórz", MNID_FILE_OPEN MENUITEM "&Otwórz", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Drukuj", MNID_FILE_PRINT MENUITEM "&Drukuj", MNID_FILE_PRINT
MENUITEM "&Ustawienia drukarki...", MNID_FILE_SETUP MENUITEM "&Ustawienia drukarki...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Wyjœcie", MNID_FILE_EXIT MENUITEM "&Wyjœcie", MNID_FILE_EXIT
END }
POPUP "&Edycja" POPUP "&Edycja" {
BEGIN
MENUITEM "&Kopiuj...", MNID_EDIT_COPYDLG MENUITEM "&Kopiuj...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Skomentuj...", MNID_EDIT_ANNOTATE MENUITEM "&Skomentuj...", MNID_EDIT_ANNOTATE
END }
POPUP "&Zak³adka" POPUP "&Zak³adka" {
BEGIN
MENUITEM "&Zdefiniuj...", MNID_BKMK_DEFINE MENUITEM "&Zdefiniuj...", MNID_BKMK_DEFINE
END }
POPUP "Pomo&c" POPUP "Pomo&c" {
BEGIN
MENUITEM "&Pomoc", MNID_HELP_HELPON MENUITEM "&Pomoc", MNID_HELP_HELPON
MENUITEM "&Zawsze na wierzchu", MNID_HELP_HELPTOP MENUITEM "&Zawsze na wierzchu", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -54,12 +48,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&O programie WINE", MNID_HELP_WINE MENUITEM "&O programie WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "WINE - Pomoc" STID_WINE_HELP, "WINE - Pomoc"
STID_WHERROR, "B£¥D" STID_WHERROR, "B£¥D"
STID_WARNING, "OSTRZE¯ENIE" STID_WARNING, "OSTRZE¯ENIE"
@ -73,5 +67,5 @@ STID_HISTORY, "&Historia"
STID_TOPICS, "&Tematy" STID_TOPICS, "&Tematy"
STID_ALL_FILES, "Wszystkie pliki (*.*)" STID_ALL_FILES, "Wszystkie pliki (*.*)"
STID_HELP_FILES_HLP, "Pliki pomocy (*.hlp)" STID_HELP_FILES_HLP, "Pliki pomocy (*.hlp)"
STID_FILE_NOT_FOUND_s "Nie mo¿na odnaleŸæ pliku '%s'. Czy chcesz spróbowaæ zlokalizowaæ ten plik samodzielnie?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -6,7 +6,7 @@
* Portuguese translation by Gustavo Junior Alves <alves@correionet.com.br> * Portuguese translation by Gustavo Junior Alves <alves@correionet.com.br>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr> * Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* Copyright 2003 Marcelo Duarte * Copyright 2003 Marcelo Duarte
* Copyright 2004 Américo José Melo * Copyright 2004,2007 Américo José Melo
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -28,28 +28,24 @@
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
MAIN_MENU MENU MAIN_MENU MENU
BEGIN {
POPUP "&Arquivo" POPUP "&Arquivo" {
BEGIN
MENUITEM "&Abrir...", MNID_FILE_OPEN MENUITEM "&Abrir...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Imprimir", MNID_FILE_PRINT MENUITEM "&Imprimir", MNID_FILE_PRINT
MENUITEM "&Configurar Impressora...", MNID_FILE_SETUP MENUITEM "&Configurar Impressora...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Sai&r", MNID_FILE_EXIT MENUITEM "Sai&r", MNID_FILE_EXIT
END }
POPUP "&Editar" POPUP "&Editar" {
BEGIN
MENUITEM "&Copiar...", MNID_EDIT_COPYDLG MENUITEM "&Copiar...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Anotar...", MNID_EDIT_ANNOTATE MENUITEM "&Anotar...", MNID_EDIT_ANNOTATE
END }
POPUP "In&dicador" POPUP "In&dicador" {
BEGIN
MENUITEM "&Definir...", MNID_BKMK_DEFINE MENUITEM "&Definir...", MNID_BKMK_DEFINE
END }
POPUP "Aj&uda" POPUP "Aj&uda" {
BEGIN
MENUITEM "Ajuda &na ajuda", MNID_HELP_HELPON MENUITEM "Ajuda &na ajuda", MNID_HELP_HELPON
MENUITEM "Sempre &visível", MNID_HELP_HELPTOP MENUITEM "Sempre &visível", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -57,13 +53,46 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Sobre WINE", MNID_HELP_WINE MENUITEM "&Sobre WINE", MNID_HELP_WINE
#endif #endif
END }
END }
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
MAIN_MENU MENU
{
POPUP "&Ficheiro" {
MENUITEM "&Abrir...", MNID_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "&Imprimir", MNID_FILE_PRINT
MENUITEM "&Configurar Impressora...", MNID_FILE_SETUP
MENUITEM SEPARATOR
MENUITEM "Sai&r", MNID_FILE_EXIT
}
POPUP "&Editar" {
MENUITEM "&Copiar...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR
MENUITEM "&Anotar...", MNID_EDIT_ANNOTATE
}
POPUP "In&dicador" {
MENUITEM "&Definir...", MNID_BKMK_DEFINE
}
POPUP "Aj&uda" {
MENUITEM "Ajuda &na ajuda", MNID_HELP_HELPON
MENUITEM "Sempre &visível", MNID_HELP_HELPTOP
MENUITEM SEPARATOR
MENUITEM "&Informações...", MNID_HELP_ABOUT
#ifdef WINELIB
MENUITEM "&Acerca do WINE", MNID_HELP_WINE
#endif
}
}
/* Strings */ /* Strings */
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
BEGIN {
STID_WINE_HELP, "Ajuda WINE" STID_WINE_HELP, "Ajuda WINE"
STID_WHERROR, "ERRO" STID_WHERROR, "ERRO"
STID_WARNING, "AVISO" STID_WARNING, "AVISO"
@ -78,4 +107,24 @@ STID_TOPICS, "&T
STID_ALL_FILES, "Todos os arquivos (*.*)" STID_ALL_FILES, "Todos os arquivos (*.*)"
STID_HELP_FILES_HLP, "Arquivos de ajuda (*.hlp)" STID_HELP_FILES_HLP, "Arquivos de ajuda (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
STRINGTABLE DISCARDABLE
{
STID_WINE_HELP, "Ajuda WINE"
STID_WHERROR, "ERRO"
STID_WARNING, "AVISO"
STID_INFO, "Informação"
STID_NOT_IMPLEMENTED, "Não implementado"
STID_HLPFILE_ERROR_s, "Erro encontrado na leitura do ficheiro de ajuda '%s'"
STID_CONTENTS, "&Conteúdo"
STID_SEARCH, "&Procurar"
STID_BACK, "&Voltar"
STID_HISTORY, "&Histórico"
STID_TOPICS, "&Tópicos"
STID_ALL_FILES, "Todos os ficheiros (*.*)"
STID_HELP_FILES_HLP, "Ficheiros de ajuda (*.hlp)"
STID_FILE_NOT_FOUND_s "Não é possível encontrar '%s'. Deseja procurar este ficheiro você mesmo?"
}

View file

@ -18,33 +18,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
BEGIN {
POPUP "&Ôàéë" POPUP "&Ôàéë" {
BEGIN
MENUITEM "&Îòêðûòü", MNID_FILE_OPEN MENUITEM "&Îòêðûòü", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Ïå÷àòàòü", MNID_FILE_PRINT MENUITEM "&Ïå÷àòàòü", MNID_FILE_PRINT
MENUITEM "Íàñòðîéêà &ïðèíòåðà...", MNID_FILE_SETUP MENUITEM "Íàñòðîéêà &ïðèíòåðà...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Âûõîä", MNID_FILE_EXIT MENUITEM "&Âûõîä", MNID_FILE_EXIT
END }
POPUP "&Ïðàâêà" POPUP "&Ïðàâêà" {
BEGIN
MENUITEM "&Êîïèðîâàòü...", MNID_EDIT_COPYDLG MENUITEM "&Êîïèðîâàòü...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Çàìåòêè...", MNID_EDIT_ANNOTATE MENUITEM "&Çàìåòêè...", MNID_EDIT_ANNOTATE
END }
POPUP "&Çàêëàäêà" POPUP "&Çàêëàäêà" {
BEGIN
MENUITEM "&Îïðåäåëèòü...", MNID_BKMK_DEFINE MENUITEM "&Îïðåäåëèòü...", MNID_BKMK_DEFINE
END }
POPUP "&Ñïðàâêà" POPUP "&Ñïðàâêà" {
BEGIN
MENUITEM "Ïîìîùü &ïî ïîìîùè", MNID_HELP_HELPON MENUITEM "Ïîìîùü &ïî ïîìîùè", MNID_HELP_HELPON
MENUITEM "Âñåãäà &ñâåðõó", MNID_HELP_HELPTOP MENUITEM "Âñåãäà &ñâåðõó", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -52,12 +46,22 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Î Wine", MNID_HELP_WINE MENUITEM "&Î Wine", MNID_HELP_WINE
#endif #endif
END }
END }
IDD_INDEX DIALOG DISCARDABLE 0, 0, 200, 190 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
CAPTION "Óêàçàòåëü"
{
LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
PUSHBUTTON "&OK", IDOK, 40, 170, 50, 12
PUSHBUTTON "&Îòìåíà", IDCANCEL, 120, 170, 50, 12
}
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "Ñïðàâêà WINE" STID_WINE_HELP, "Ñïðàâêà WINE"
STID_WHERROR, "ÎØÈÁÊÀ" STID_WHERROR, "ÎØÈÁÊÀ"
STID_WARNING, "ÂÍÈÌÀÍÈÅ" STID_WARNING, "ÂÍÈÌÀÍÈÅ"
@ -72,4 +76,4 @@ STID_TOPICS, "&
STID_ALL_FILES, "Âñå ôàéëû (*.*)" STID_ALL_FILES, "Âñå ôàéëû (*.*)"
STID_HELP_FILES_HLP, "Ôàéëû ñïðàâêè (*.hlp)" STID_HELP_FILES_HLP, "Ôàéëû ñïðàâêè (*.hlp)"
STID_FILE_NOT_FOUND_s "Íå ìîãó íàéòè '%s'. Âû õîòèòå íàéòè ýòîò ôàéë ñàìîñòîÿòåëüíî?" STID_FILE_NOT_FOUND_s "Íå ìîãó íàéòè '%s'. Âû õîòèòå íàéòè ýòîò ôàéë ñàìîñòîÿòåëüíî?"
END }

View file

@ -1,10 +1,3 @@
/*
* FILE: base/applications/winhelp/lang/sk-SK.rc
* PURPOSE: Slovak Language File for winhelp
* TRANSLATOR: Kario (kario@szm.sk)
* DATE OF TR: 04-08-2007
*/
/* /*
* Help Viewer * Help Viewer
* *
@ -25,55 +18,49 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT MAIN_MENU MENU LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
{
MAIN_MENU MENU POPUP "&Súbor" {
BEGIN
POPUP "&Súbor"
BEGIN
MENUITEM "&Otvori<72>...", MNID_FILE_OPEN MENUITEM "&Otvori<72>...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Tlaèi<C3A8>", MNID_FILE_PRINT MENUITEM "&Tlaèi<C3A8>", MNID_FILE_PRINT
MENUITEM "&Nastavenie tlaèe...", MNID_FILE_SETUP MENUITEM "&Nastavenie tlaèe...", MNID_FILE_SETUP
MENUITEM "U&konèi<C3A8>", MNID_FILE_EXIT MENUITEM "U&konèi<C3A8>", MNID_FILE_EXIT
END }
POPUP "&Upravi<76>" POPUP "&Upravi<76>" {
BEGIN
MENUITEM "Kopí&rova<76>...", MNID_EDIT_COPYDLG MENUITEM "Kopí&rova<76>...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Skomentova<76>...", MNID_EDIT_ANNOTATE MENUITEM "&Skomentova<76>...", MNID_EDIT_ANNOTATE
END }
POPUP "&Záložka" POPUP "&Záložka" {
BEGIN
MENUITEM "&Definova<76>...", MNID_BKMK_DEFINE MENUITEM "&Definova<76>...", MNID_BKMK_DEFINE
END }
POPUP "&Pomocík" POPUP "&Pomoc" {
BEGIN MENUITEM "Pomoc &na pomoci", MNID_HELP_HELPON
MENUITEM "&Ako použi<C5BE> Pomocníka", MNID_HELP_HELPON
MENUITEM "Vždy na &vrchu", MNID_HELP_HELPTOP MENUITEM "Vždy na &vrchu", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Info...", MNID_HELP_ABOUT MENUITEM "&Info...", MNID_HELP_ABOUT
#ifdef WINELIB #ifdef WINELIB
MENUITEM "È&o je ReactOS", MNID_HELP_WINE MENUITEM "O& WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "Pomocník ReactOSu" STID_WINE_HELP, "WINE Pomoc"
STID_WHERROR, "CHYBA" STID_WHERROR, "CHYBA"
STID_WARNING, "UPOZORNENIE" STID_WARNING, "VAROVANIE"
STID_INFO, "Informácie" STID_INFO, "Informácie"
STID_NOT_IMPLEMENTED, "Neimplementované" STID_NOT_IMPLEMENTED, "Neimplementované"
STID_HLPFILE_ERROR_s, "Pri pokuse otvori<72> súbor pomocníka '%s' sa vyskytla chyba." STID_HLPFILE_ERROR_s, "Chyba poèas èítania súboru `%s'"
STID_CONTENTS, "&Obsah" STID_CONTENTS, "&Obsah"
STID_SEARCH, "&H¾ada<64>" STID_SEARCH, "&H¾ada<64>"
STID_BACK, "&Spä<70>" STID_BACK, "&Spä<70>"
STID_HISTORY, "&História" STID_HISTORY, "&História"
STID_TOPICS, "&Témy" STID_TOPICS, "&Topics"
STID_ALL_FILES, "Všetky súbory (*.*)" STID_ALL_FILES, "Všetky súbory (*.*)"
STID_HELP_FILES_HLP, "Súbory pomoci (*.hlp)" STID_HELP_FILES_HLP, "Súbory pomoci (*.hlp)"
STID_FILE_NOT_FOUND_s "Súbor '%s' nebol nájdený. Chcete sa pokúsi<73> nájs<6A> tento súbor sami?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -18,33 +18,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
BEGIN {
POPUP "&Datoteka" POPUP "&Datoteka" {
BEGIN
MENUITEM "&Odpri ...", MNID_FILE_OPEN MENUITEM "&Odpri ...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Na&tisni temo ...", MNID_FILE_PRINT MENUITEM "Na&tisni temo ...", MNID_FILE_PRINT
MENUITEM "&Priprava tiskalnika", MNID_FILE_SETUP MENUITEM "&Priprava tiskalnika", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Iz&hod", MNID_FILE_EXIT MENUITEM "Iz&hod", MNID_FILE_EXIT
END }
POPUP "&Urejanje" POPUP "&Urejanje" {
BEGIN
MENUITEM "&Kopiraj", MNID_EDIT_COPYDLG MENUITEM "&Kopiraj", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Pripombe ...", MNID_EDIT_ANNOTATE MENUITEM "&Pripombe ...", MNID_EDIT_ANNOTATE
END }
POPUP "&Zaznamek" POPUP "&Zaznamek" {
BEGIN
MENUITEM "&Doloèi ...", MNID_BKMK_DEFINE MENUITEM "&Doloèi ...", MNID_BKMK_DEFINE
END }
POPUP "&Pomoè" POPUP "&Pomoè" {
BEGIN
MENUITEM "&O pomoèi", MNID_HELP_HELPON MENUITEM "&O pomoèi", MNID_HELP_HELPON
MENUITEM "Vedno na &vrhu", MNID_HELP_HELPTOP MENUITEM "Vedno na &vrhu", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -52,12 +46,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&O WINE", MNID_HELP_WINE MENUITEM "&O WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "WINE Pomoè" STID_WINE_HELP, "WINE Pomoè"
STID_WHERROR, "NAPAKA" STID_WHERROR, "NAPAKA"
STID_WARNING, "OPOZORILO" STID_WARNING, "OPOZORILO"
@ -72,4 +66,4 @@ STID_TOPICS, "&Vsebina"
STID_ALL_FILES, "Vse datiteke (*.*)" STID_ALL_FILES, "Vse datiteke (*.*)"
STID_HELP_FILES_HLP, "Datoteke s pomoèjo (*.hlp)" STID_HELP_FILES_HLP, "Datoteke s pomoèjo (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -4,6 +4,7 @@
* Copyright 1996 Ulrich Schmid * Copyright 1996 Ulrich Schmid
* Swedish language by Karl Backström <karl_b@geocities.com> * Swedish language by Karl Backström <karl_b@geocities.com>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr> * Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* Copyright 2007 Daniel Nylander
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -20,59 +21,52 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
BEGIN {
POPUP "&Arkiv" POPUP "&Arkiv" {
BEGIN MENUITEM "&Öppna", MNID_FILE_OPEN
MENUITEM "&Öppna...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Skriv ut", MNID_FILE_PRINT MENUITEM "&Skriv ut", MNID_FILE_PRINT
MENUITEM "Skrivar &inställningar...", MNID_FILE_SETUP MENUITEM "Skrivar&konfiguration...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Avsluta", MNID_FILE_EXIT MENUITEM "A&vsluta", MNID_FILE_EXIT
END }
POPUP "&Redigera" POPUP "R&edigera" {
BEGIN
MENUITEM "&Kopiera...", MNID_EDIT_COPYDLG MENUITEM "&Kopiera...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Markera...", MNID_EDIT_ANNOTATE MENUITEM "&Kommentera...", MNID_EDIT_ANNOTATE
END }
POPUP "&Bokmärke" POPUP "&Bokmärke" {
BEGIN MENUITEM "&Definiera...", MNID_BKMK_DEFINE
MENUITEM "&Defingera...", MNID_BKMK_DEFINE }
END POPUP "&Hjälp" {
POPUP "&Hjälp" MENUITEM "Hjälp &för hjälp", MNID_HELP_HELPON
BEGIN MENUITEM "Alltid &överst", MNID_HELP_HELPTOP
MENUITEM "Användningen &av hjälp", MNID_HELP_HELPON
MENUITEM "Alltid &överst", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Information...", MNID_HELP_ABOUT MENUITEM "&Info...", MNID_HELP_ABOUT
#ifdef WINELIB #ifdef WINELIB
MENUITEM "&Om WINE", MNID_HELP_WINE MENUITEM "&Om WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE {
BEGIN STID_WINE_HELP, "WINE Hjälp"
STID_WINE_HELP, "WINE Hjälp"
STID_WHERROR, "FEL" STID_WHERROR, "FEL"
STID_WARNING, "VARNING" STID_WARNING, "VARNING"
STID_INFO, "Information" STID_INFO, "Information"
STID_NOT_IMPLEMENTED, "Ej implementererat" STID_NOT_IMPLEMENTED, "Inte implementerat"
STID_HLPFILE_ERROR_s, "FEL vid läsning av hjälp filen `%s'" STID_HLPFILE_ERROR_s, "Fel vid läsning av hjälpfilen `%s'"
STID_CONTENTS, "&Innehåll" STID_CONTENTS, "&Innehåll"
STID_SEARCH, "&Sök" STID_SEARCH, "&Sök"
STID_BACK, "&Tillbaka" STID_BACK, "&Bakåt"
STID_HISTORY, "&Översikt" STID_HISTORY, "&Historik"
STID_TOPICS, "T&opics" STID_TOPICS, "&Ämnen"
STID_ALL_FILES, "Alla filer (*.*))" STID_ALL_FILES, "Alla filer (*.*)"
STID_HELP_FILES_HLP, "Hjälp filer (*.hlp)" STID_HELP_FILES_HLP, "Hjälpfiler (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Kan inte hitta '%s'. Vill du söka efter denna fil?"
END }

View file

@ -18,33 +18,27 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
BEGIN {
POPUP "&Dosya" POPUP "&Dosya" {
BEGIN
MENUITEM "&Aç", MNID_FILE_OPEN MENUITEM "&Aç", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Ya&zdýr", MNID_FILE_PRINT MENUITEM "Ya&zdýr", MNID_FILE_PRINT
MENUITEM "&Yazýcý ayarlarý...", MNID_FILE_SETUP MENUITEM "&Yazýcý ayarlarý...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Çýkýþ", MNID_FILE_EXIT MENUITEM "&Çýkýþ", MNID_FILE_EXIT
END }
POPUP "Dü&zen" POPUP "Dü&zen" {
BEGIN
MENUITEM "K&opyala...", MNID_EDIT_COPYDLG MENUITEM "K&opyala...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Annotate...", MNID_EDIT_ANNOTATE MENUITEM "&Annotate...", MNID_EDIT_ANNOTATE
END }
POPUP "Yer Ý&mleri" POPUP "Yer Ý&mleri" {
BEGIN
MENUITEM "&Tanýmla...", MNID_BKMK_DEFINE MENUITEM "&Tanýmla...", MNID_BKMK_DEFINE
END }
POPUP "&Yardým" POPUP "&Yardým" {
BEGIN
MENUITEM "&Yardým Kullanýmý", MNID_HELP_HELPON MENUITEM "&Yardým Kullanýmý", MNID_HELP_HELPON
MENUITEM "&Her Zaman Üstte", MNID_HELP_HELPTOP MENUITEM "&Her Zaman Üstte", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -52,12 +46,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "WINE &Hakkýnda", MNID_HELP_WINE MENUITEM "WINE &Hakkýnda", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "WINE Yardým" STID_WINE_HELP, "WINE Yardým"
STID_WHERROR, "HATA" STID_WHERROR, "HATA"
STID_WARNING, "UYARI" STID_WARNING, "UYARI"
@ -72,4 +66,4 @@ STID_TOPICS, "&Konular"
STID_ALL_FILES, "Tüm dosyalar (*.*)" STID_ALL_FILES, "Tüm dosyalar (*.*)"
STID_HELP_FILES_HLP, "Yardým dosyalarý (*.hlp)" STID_HELP_FILES_HLP, "Yardým dosyalarý (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -27,28 +27,24 @@
* not supported today * not supported today
*/ */
MAIN_MENU MENU LANGUAGE LANG_, SUBLANG_DEFAULT MAIN_MENU MENU LANGUAGE LANG_, SUBLANG_DEFAULT
BEGIN {
POPUP "&Datoteca" POPUP "&Datoteca" {
BEGIN
MENUITEM "&Rivir", MNID_FILE_OPEN MENUITEM "&Rivir", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Stampar tema", MNID_FILE_PRINT MENUITEM "&Stampar tema", MNID_FILE_PRINT
MENUITEM "&Installaziun dal stampader...", MNID_FILE_SETUP MENUITEM "&Installaziun dal stampader...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Finir", MNID_FILE_EXIT MENUITEM "&Finir", MNID_FILE_EXIT
END }
POPUP "&Lavurar" POPUP "&Lavurar" {
BEGIN
MENUITEM "Capchar", MNID_EDIT_COPYDLG MENUITEM "Capchar", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Annotaziun...", MNID_EDIT_ANNOTATE MENUITEM "&Annotaziun...", MNID_EDIT_ANNOTATE
END }
POPUP "&Marca" POPUP "&Marca" {
BEGIN
MENUITEM "&Definir...", MNID_BKMK_DEFINE MENUITEM "&Definir...", MNID_BKMK_DEFINE
END }
POPUP "&Agüd" POPUP "&Agüd" {
BEGIN
MENUITEM "&Douvrar l'agüd", MNID_HELP_HELPON MENUITEM "&Douvrar l'agüd", MNID_HELP_HELPON
MENUITEM "Adüna da&vant", MNID_HELP_HELPTOP MENUITEM "Adüna da&vant", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -56,13 +52,13 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "Davart &WINE", MNID_HELP_WINE MENUITEM "Davart &WINE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT STRINGTABLE DISCARDABLE LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT
BEGIN {
WINE_HELP, "WINE agüd" WINE_HELP, "WINE agüd"
WHERROR, "SBAGL" WHERROR, "SBAGL"
WARNING, "ATTENZIUN" WARNING, "ATTENZIUN"
@ -77,4 +73,4 @@ TOPICS, "T&opics"
ALL_FILES, "Tuot las datotecas (*.*)" ALL_FILES, "Tuot las datotecas (*.*)"
HELP_FILES_HLP, "Datotecas d'agüd (*.hlp)" HELP_FILES_HLP, "Datotecas d'agüd (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -20,33 +20,29 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_WALON, SUBLANG_DEFAULT #ifdef LANG_WALON
/* Menu */ /* Menu */
MAIN_MENU MENU MAIN_MENU MENU LANGUAGE LANG_WALON, SUBLANG_DEFAULT
BEGIN {
POPUP "&Fitchî" POPUP "&Fitchî" {
BEGIN
MENUITEM "&Drovî...", MNID_FILE_OPEN MENUITEM "&Drovî...", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Rexhe", MNID_FILE_PRINT MENUITEM "&Rexhe", MNID_FILE_PRINT
MENUITEM "&Apontiaedje del scrirece...", MNID_FILE_SETUP MENUITEM "&Apontiaedje del scrirece...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Moussî &Foû", MNID_FILE_EXIT MENUITEM "Moussî &Foû", MNID_FILE_EXIT
END }
POPUP "&Candjî" POPUP "&Candjî" {
BEGIN
MENUITEM "&Copyî...", MNID_EDIT_COPYDLG MENUITEM "&Copyî...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Sicrîre...", MNID_EDIT_ANNOTATE MENUITEM "&Sicrîre...", MNID_EDIT_ANNOTATE
END }
POPUP "&Rimårkes" POPUP "&Rimårkes" {
BEGIN
MENUITEM "&Defini...", MNID_BKMK_DEFINE MENUITEM "&Defini...", MNID_BKMK_DEFINE
END }
POPUP "&Aide" POPUP "&Aide" {
BEGIN
MENUITEM "&Aide so l' Aide", MNID_HELP_HELPON MENUITEM "&Aide so l' Aide", MNID_HELP_HELPON
MENUITEM "Todi &Visibe", MNID_HELP_HELPTOP MENUITEM "Todi &Visibe", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -54,13 +50,13 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "Å &dfait di WINEE", MNID_HELP_WINE MENUITEM "Å &dfait di WINEE", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_WALON, SUBLANG_DEFAULT
BEGIN {
STID_WINE_HELP, "Aidance di WINE" STID_WINE_HELP, "Aidance di WINE"
STID_WHERROR, "AROKE" STID_WHERROR, "AROKE"
STID_WARNING, "ADVERTIXHMINT" STID_WARNING, "ADVERTIXHMINT"
@ -75,4 +71,6 @@ STID_TOPICS, "&Topics"
STID_ALL_FILES, "Tos les fitchîs (*.*)" STID_ALL_FILES, "Tos les fitchîs (*.*)"
STID_HELP_FILES_HLP, "Fitchîs d' aide (*.hlp)" STID_HELP_FILES_HLP, "Fitchîs d' aide (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }
#endif /* LANG_WALON */

View file

@ -21,31 +21,25 @@
/* Menu */ /* Menu */
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED MAIN_MENU MENU LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
{
MAIN_MENU MENU POPUP "文件(&F" {
BEGIN
POPUP "文件(&F"
BEGIN
MENUITEM "打开(&O", MNID_FILE_OPEN MENUITEM "打开(&O", MNID_FILE_OPEN
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "打印(&P", MNID_FILE_PRINT MENUITEM "打印(&P", MNID_FILE_PRINT
MENUITEM "打印机设置(&S...", MNID_FILE_SETUP MENUITEM "打印机设置(&S...", MNID_FILE_SETUP
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "退出(&E", MNID_FILE_EXIT MENUITEM "退出(&E", MNID_FILE_EXIT
END }
POPUP "编辑(&E" POPUP "编辑(&E" {
BEGIN
MENUITEM "复制(&C...", MNID_EDIT_COPYDLG MENUITEM "复制(&C...", MNID_EDIT_COPYDLG
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "注释(&A...", MNID_EDIT_ANNOTATE MENUITEM "注释(&A...", MNID_EDIT_ANNOTATE
END }
POPUP "书签(&B" POPUP "书签(&B" {
BEGIN
MENUITEM "定义(&D...", MNID_BKMK_DEFINE MENUITEM "定义(&D...", MNID_BKMK_DEFINE
END }
POPUP "帮助(&H" POPUP "帮助(&H" {
BEGIN
MENUITEM "如何使用帮助(&O", MNID_HELP_HELPON MENUITEM "如何使用帮助(&O", MNID_HELP_HELPON
MENUITEM "总是在最前面(&T", MNID_HELP_HELPTOP MENUITEM "总是在最前面(&T", MNID_HELP_HELPTOP
MENUITEM SEPARATOR MENUITEM SEPARATOR
@ -53,12 +47,12 @@ BEGIN
#ifdef WINELIB #ifdef WINELIB
MENUITEM "关于 WINE&A", MNID_HELP_WINE MENUITEM "关于 WINE&A", MNID_HELP_WINE
#endif #endif
END }
END }
/* Strings */ /* Strings */
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
BEGIN {
STID_WINE_HELP, "WINE 帮助" STID_WINE_HELP, "WINE 帮助"
STID_WHERROR, "错误" STID_WHERROR, "错误"
STID_WARNING, "警告" STID_WARNING, "警告"
@ -73,4 +67,4 @@ STID_TOPICS, "
STID_ALL_FILES, "所有文件 (*.*)" STID_ALL_FILES, "所有文件 (*.*)"
STID_HELP_FILES_HLP, "帮助文件 (*.hlp)" STID_HELP_FILES_HLP, "帮助文件 (*.hlp)"
STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?" STID_FILE_NOT_FOUND_s "Cannot find '%s'. Do you want to find this file yourself?"
END }

View file

@ -417,7 +417,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(winhelp);
static LPCSTR macroptr; static LPCSTR macroptr;
static LPSTR strptr; static LPSTR strptr;
static int quote_stack[32]; static int quote_stack[32];
static int quote_stk_idx = 0; static unsigned int quote_stk_idx = 0;
struct lexret yylval; struct lexret yylval;
#define YY_INPUT(buf,result,max_size)\ #define YY_INPUT(buf,result,max_size)\
@ -1690,7 +1690,7 @@ static int MACRO_CallBoolFunc(FARPROC fn, const char* args, void** ret);
static int MACRO_CheckArgs(void* pa[], unsigned max, const char* args) static int MACRO_CheckArgs(void* pa[], unsigned max, const char* args)
{ {
int t; int t;
int len = 0, idx = 0; unsigned int len = 0, idx = 0;
WINE_TRACE("Checking %s\n", args); WINE_TRACE("Checking %s\n", args);
@ -1802,7 +1802,7 @@ BOOL MACRO_ExecuteMacro(LPCSTR macro)
{ {
int t; int t;
//WINE_TRACE("%s\n", wine_dbgstr_a(macro)); WINE_TRACE("%s\n", wine_dbgstr_a(macro));
macroptr = macro; macroptr = macro;

View file

@ -233,7 +233,7 @@ void CALLBACK MACRO_BackFlush(void)
if (win) if (win)
{ {
int i; unsigned int i;
for (i = 0; i < win->backIndex; i++) for (i = 0; i < win->backIndex; i++)
{ {
@ -523,7 +523,7 @@ void CALLBACK MACRO_Find(void)
void CALLBACK MACRO_Finder(void) void CALLBACK MACRO_Finder(void)
{ {
WINE_FIXME("()\n"); WINHELP_CreateIndexWindow();
} }
void CALLBACK MACRO_FloatingMenu(void) void CALLBACK MACRO_FloatingMenu(void)

View file

@ -19,9 +19,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#ifndef __MACRO_H__
#define __MACRO_H__
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"
@ -136,5 +133,3 @@ void CALLBACK MACRO_UpdateWindow(LPCSTR, LPCSTR);
/* Local Variables: */ /* Local Variables: */
/* c-file-style: "GNU" */ /* c-file-style: "GNU" */
/* End: */ /* End: */
#endif /* __MACRO_H__ */

View file

@ -33,7 +33,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(winhelp);
static LPCSTR macroptr; static LPCSTR macroptr;
static LPSTR strptr; static LPSTR strptr;
static int quote_stack[32]; static int quote_stack[32];
static int quote_stk_idx = 0; static unsigned int quote_stk_idx = 0;
struct lexret yylval; struct lexret yylval;
#define YY_INPUT(buf,result,max_size)\ #define YY_INPUT(buf,result,max_size)\
@ -144,7 +144,7 @@ static int MACRO_CallBoolFunc(FARPROC fn, const char* args, void** ret);
static int MACRO_CheckArgs(void* pa[], unsigned max, const char* args) static int MACRO_CheckArgs(void* pa[], unsigned max, const char* args)
{ {
int t; int t;
int len = 0, idx = 0; unsigned int len = 0, idx = 0;
WINE_TRACE("Checking %s\n", args); WINE_TRACE("Checking %s\n", args);
@ -256,7 +256,7 @@ BOOL MACRO_ExecuteMacro(LPCSTR macro)
{ {
int t; int t;
//WINE_TRACE("%s\n", wine_dbgstr_a(macro)); WINE_TRACE("%s\n", wine_dbgstr_a(macro));
macroptr = macro; macroptr = macro;

View file

@ -19,7 +19,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include <windows.h> #include <windef.h>
#include <winuser.h>
#include "winhelp.h" #include "winhelp.h"
#include "winhelp_res.h" #include "winhelp_res.h"
@ -41,7 +43,7 @@
#include "lang/nb-NO.rc" #include "lang/nb-NO.rc"
#include "lang/pl-PL.rc" #include "lang/pl-PL.rc"
#include "lang/pt-BR.rc" #include "lang/pt-BR.rc"
#include "lang/pt-PT.rc" //#include "lang/pt-PT.rc"
#include "lang/ru-RU.rc" #include "lang/ru-RU.rc"
#include "lang/sl-SI.rc" #include "lang/sl-SI.rc"
#include "lang/sk-SK.rc" #include "lang/sk-SK.rc"

View file

@ -214,7 +214,7 @@ static HLPFILE_WINDOWINFO* WINHELP_GetPopupWindowInfo(HLPFILE* hlpfile, HWND
wi.origin.x = max(wi.origin.x, 0); wi.origin.x = max(wi.origin.x, 0);
wi.style = SW_SHOW; wi.style = SW_SHOW;
wi.win_style = WS_POPUPWINDOW; wi.win_style = WS_POPUP | WS_BORDER;
wi.sr_color = wi.sr_color = 0xFFFFFF; wi.sr_color = wi.sr_color = 0xFFFFFF;
return &wi; return &wi;
@ -326,13 +326,13 @@ static BOOL WINHELP_RegisterWinClasses(void)
class_main.hInstance = Globals.hInstance; class_main.hInstance = Globals.hInstance;
class_main.hIcon = LoadIcon(0, IDI_APPLICATION); class_main.hIcon = LoadIcon(0, IDI_APPLICATION);
class_main.hCursor = LoadCursor(0, IDC_ARROW); class_main.hCursor = LoadCursor(0, IDC_ARROW);
class_main.hbrBackground = GetStockObject(WHITE_BRUSH); class_main.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
class_main.lpszMenuName = 0; class_main.lpszMenuName = 0;
class_main.lpszClassName = MAIN_WIN_CLASS_NAME; class_main.lpszClassName = MAIN_WIN_CLASS_NAME;
class_button_box = class_main; class_button_box = class_main;
class_button_box.lpfnWndProc = WINHELP_ButtonBoxWndProc; class_button_box.lpfnWndProc = WINHELP_ButtonBoxWndProc;
class_button_box.hbrBackground = GetStockObject(GRAY_BRUSH); class_button_box.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
class_button_box.lpszClassName = BUTTON_BOX_WIN_CLASS_NAME; class_button_box.lpszClassName = BUTTON_BOX_WIN_CLASS_NAME;
class_text = class_main; class_text = class_main;
@ -342,7 +342,7 @@ static BOOL WINHELP_RegisterWinClasses(void)
class_shadow = class_main; class_shadow = class_main;
class_shadow.lpfnWndProc = WINHELP_ShadowWndProc; class_shadow.lpfnWndProc = WINHELP_ShadowWndProc;
class_shadow.hbrBackground = GetStockObject(GRAY_BRUSH); class_shadow.hbrBackground = (HBRUSH)(COLOR_3DDKSHADOW+1);
class_shadow.lpszClassName = SHADOW_WIN_CLASS_NAME; class_shadow.lpszClassName = SHADOW_WIN_CLASS_NAME;
class_history = class_main; class_history = class_main;
@ -440,11 +440,13 @@ static LRESULT WINHELP_HandleCommand(HWND hSrcWnd, LPARAM lParam)
/* case HELP_PARTIALKEY: */ /* case HELP_PARTIALKEY: */
/* case HELP_MULTIKEY: */ /* case HELP_MULTIKEY: */
/* case HELP_SETWINPOS: */ /* case HELP_SETWINPOS: */
WINE_FIXME("Unknown command (%x) for remote winhelp control\n", wh->command); default:
WINE_FIXME("Unhandled command (%x) for remote winhelp control\n", wh->command);
break; break;
} }
} }
return 0L; /* Always return success for now */
return 1;
} }
/****************************************************************** /******************************************************************
@ -462,7 +464,7 @@ static BOOL WINHELP_ReuseWindow(WINHELP_WINDOW* win, WINHELP_WINDOW* oldwin,
win->hTextWnd = oldwin->hTextWnd; win->hTextWnd = oldwin->hTextWnd;
win->hHistoryWnd = oldwin->hHistoryWnd; win->hHistoryWnd = oldwin->hHistoryWnd;
oldwin->hMainWnd = oldwin->hButtonBoxWnd = oldwin->hTextWnd = oldwin->hHistoryWnd = 0; oldwin->hMainWnd = oldwin->hButtonBoxWnd = oldwin->hTextWnd = oldwin->hHistoryWnd = 0;
win->hBrush = oldwin->hBrush; win->hBrush = CreateSolidBrush(win->info->sr_color);
SetWindowLong(win->hMainWnd, 0, (LONG)win); SetWindowLong(win->hMainWnd, 0, (LONG)win);
SetWindowLong(win->hButtonBoxWnd, 0, (LONG)win); SetWindowLong(win->hButtonBoxWnd, 0, (LONG)win);
@ -550,6 +552,7 @@ BOOL WINHELP_CreateHelpWindow(HLPFILE_PAGE* page, HLPFILE_WINDOWINFO* wi,
BOOL bPrimary; BOOL bPrimary;
BOOL bPopup; BOOL bPopup;
LPSTR name; LPSTR name;
DWORD ex_style;
bPrimary = !lstrcmpi(wi->name, "main"); bPrimary = !lstrcmpi(wi->name, "main");
bPopup = wi->win_style & WS_POPUP; bPopup = wi->win_style & WS_POPUP;
@ -622,7 +625,9 @@ BOOL WINHELP_CreateHelpWindow(HLPFILE_PAGE* page, HLPFILE_WINDOWINFO* wi,
} }
} }
hWnd = CreateWindow(bPopup ? TEXT_WIN_CLASS_NAME : MAIN_WIN_CLASS_NAME, ex_style = 0;
if (bPopup) ex_style = WS_EX_TOOLWINDOW;
hWnd = CreateWindowEx(ex_style, bPopup ? TEXT_WIN_CLASS_NAME : MAIN_WIN_CLASS_NAME,
wi->caption, wi->caption,
bPrimary ? WS_OVERLAPPEDWINDOW : wi->win_style, bPrimary ? WS_OVERLAPPEDWINDOW : wi->win_style,
wi->origin.x, wi->origin.y, wi->size.cx, wi->size.cy, wi->origin.x, wi->origin.y, wi->size.cx, wi->size.cy,
@ -665,6 +670,20 @@ BOOL WINHELP_CreateHelpWindowByMap(HLPFILE* hlpfile, LONG lMap,
return WINHELP_CreateHelpWindow(page, wi, nCmdShow); return WINHELP_CreateHelpWindow(page, wi, nCmdShow);
} }
/***********************************************************************
*
* WINHELP_CreateHelpWindowByOffset
*/
BOOL WINHELP_CreateHelpWindowByOffset(HLPFILE* hlpfile, LONG lOffset,
HLPFILE_WINDOWINFO* wi, int nCmdShow)
{
HLPFILE_PAGE* page = NULL;
page = HLPFILE_PageByOffset(hlpfile, lOffset);
if (page) page->file->wRefCount++;
return WINHELP_CreateHelpWindow(page, wi, nCmdShow);
}
/*********************************************************************** /***********************************************************************
* *
* WINHELP_MainWndProc * WINHELP_MainWndProc
@ -982,7 +1001,7 @@ static LRESULT CALLBACK WINHELP_TextWndProc(HWND hWnd, UINT msg, WPARAM wParam,
new_window_size.cy = old_window_size.cy - old_client_size.cy + new_client_size.cy; new_window_size.cy = old_window_size.cy - old_client_size.cy + new_client_size.cy;
win->hShadowWnd = win->hShadowWnd =
CreateWindow(SHADOW_WIN_CLASS_NAME, "", WS_POPUP, CreateWindowEx(WS_EX_TOOLWINDOW, SHADOW_WIN_CLASS_NAME, "", WS_POPUP,
origin.x + SHADOW_DX, origin.y + SHADOW_DY, origin.x + SHADOW_DX, origin.y + SHADOW_DY,
new_window_size.cx, new_window_size.cy, new_window_size.cx, new_window_size.cy,
0, 0, Globals.hInstance, 0); 0, 0, Globals.hInstance, 0);
@ -1200,7 +1219,7 @@ static LRESULT CALLBACK WINHELP_TextWndProc(HWND hWnd, UINT msg, WPARAM wParam,
hlpfile = WINHELP_LookupHelpFile(part->link->lpszString); hlpfile = WINHELP_LookupHelpFile(part->link->lpszString);
if (part->link->window == -1) if (part->link->window == -1)
wi = win->info; wi = win->info;
else if ((part->link->window >= 0) && (part->link->window < hlpfile->numWindows)) else if (part->link->window < hlpfile->numWindows)
wi = &hlpfile->windows[part->link->window]; wi = &hlpfile->windows[part->link->window];
else else
{ {
@ -1234,7 +1253,6 @@ static LRESULT CALLBACK WINHELP_TextWndProc(HWND hWnd, UINT msg, WPARAM wParam,
if (hWnd == Globals.hPopupWnd) Globals.hPopupWnd = 0; if (hWnd == Globals.hPopupWnd) Globals.hPopupWnd = 0;
bExit = (Globals.wVersion >= 4 && !lstrcmpi(win->lpszName, "main")); bExit = (Globals.wVersion >= 4 && !lstrcmpi(win->lpszName, "main"));
DeleteObject(win->hBrush);
WINHELP_DeleteWindow(win); WINHELP_DeleteWindow(win);
@ -1815,6 +1833,8 @@ static void WINHELP_DeleteWindow(WINHELP_WINDOW* win)
if (win->hShadowWnd) DestroyWindow(win->hShadowWnd); if (win->hShadowWnd) DestroyWindow(win->hShadowWnd);
if (win->hHistoryWnd) DestroyWindow(win->hHistoryWnd); if (win->hHistoryWnd) DestroyWindow(win->hHistoryWnd);
DeleteObject(win->hBrush);
for (i = 0; i < win->histIndex; i++) for (i = 0; i < win->histIndex; i++)
{ {
HLPFILE_FreeHlpFile(win->history[i]->file); HLPFILE_FreeHlpFile(win->history[i]->file);
@ -1836,13 +1856,13 @@ static void WINHELP_InitFonts(HWND hWnd)
{ {
WINHELP_WINDOW *win = (WINHELP_WINDOW*) GetWindowLong(hWnd, 0); WINHELP_WINDOW *win = (WINHELP_WINDOW*) GetWindowLong(hWnd, 0);
LOGFONT logfontlist[] = { LOGFONT logfontlist[] = {
{-10, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 32, "Helv"}, {-10, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 32, "Helv"},
{-12, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 32, "Helv"}, {-12, 0, 0, 0, 700, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 32, "Helv"},
{-12, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 32, "Helv"}, {-12, 0, 0, 0, 700, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 32, "Helv"},
{-12, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 32, "Helv"}, {-12, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 32, "Helv"},
{-12, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 32, "Helv"}, {-12, 0, 0, 0, 700, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 32, "Helv"},
{-10, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 32, "Helv"}, {-10, 0, 0, 0, 700, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 32, "Helv"},
{ -8, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 32, "Helv"}}; { -8, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 32, "Helv"}};
#define FONTS_LEN (sizeof(logfontlist)/sizeof(*logfontlist)) #define FONTS_LEN (sizeof(logfontlist)/sizeof(*logfontlist))
static HFONT fonts[FONTS_LEN]; static HFONT fonts[FONTS_LEN];
@ -1928,3 +1948,118 @@ WINHELP_LINE_PART* WINHELP_IsOverLink(WINHELP_WINDOW* win, WPARAM wParam, LPARAM
return NULL; return NULL;
} }
/**************************************************************************
* cb_KWBTree
*
* HLPFILE_BPTreeCallback enumeration function for '|KWBTREE' internal file.
*
*/
static void cb_KWBTree(void *p, void **next, void *cookie)
{
HWND hListWnd = (HWND)cookie;
int count;
WINE_TRACE("Adding '%s' to search list\n", (char *)p);
SendMessage(hListWnd, LB_INSERTSTRING, -1, (LPARAM)p);
count = SendMessage(hListWnd, LB_GETCOUNT, 0, 0);
SendMessage(hListWnd, LB_SETITEMDATA, count-1, (LPARAM)p);
*next = (char*)p + strlen((char*)p) + 7;
}
/**************************************************************************
* WINHELP_IndexDlgProc
*
* Index dialog callback function.
*
* nResult passed to EndDialog:
* 1: CANCEL button
* >1: valid offset value +2.
* EndDialog itself can return 0 (error).
*/
INT_PTR CALLBACK WINHELP_SearchDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HLPFILE *file;
int sel;
ULONG offset = 1;
switch (msg)
{
case WM_INITDIALOG:
file = (HLPFILE *)lParam;
HLPFILE_BPTreeEnum(file->kwbtree, cb_KWBTree,
GetDlgItem(hWnd, IDC_INDEXLIST));
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
sel = SendDlgItemMessage(hWnd, IDC_INDEXLIST, LB_GETCURSEL, 0, 0);
if (sel != LB_ERR)
{
BYTE *p;
int count;
p = (BYTE*)SendDlgItemMessage(hWnd, IDC_INDEXLIST,
LB_GETITEMDATA, sel, 0);
count = *(short*)((char *)p + strlen((char *)p) + 1);
if (count > 1)
{
MessageBox(hWnd, "count > 1 not supported yet", "Error", MB_OK | MB_ICONSTOP);
return TRUE;
}
offset = *(ULONG*)((char *)p + strlen((char *)p) + 3);
offset = *(long*)(file->kwdata + offset + 9);
if (offset == 0xFFFFFFFF)
{
MessageBox(hWnd, "macro keywords not supported yet", "Error", MB_OK | MB_ICONSTOP);
return TRUE;
}
offset += 2;
}
/* Fall through */
case IDCANCEL:
EndDialog(hWnd, offset);
return TRUE;
default:
break;
}
default:
break;
}
return FALSE;
}
/**************************************************************************
* WINHELP_CreateIndexWindow
*
* Displays a dialog with keywords of current help file.
*
*/
BOOL WINHELP_CreateIndexWindow(void)
{
int ret;
HLPFILE *hlpfile;
if (Globals.active_win && Globals.active_win->page && Globals.active_win->page->file)
hlpfile = Globals.active_win->page->file;
else
return FALSE;
if (hlpfile->kwbtree == NULL)
{
WINE_TRACE("No index provided\n");
return FALSE;
}
ret = DialogBoxParam(Globals.hInstance, MAKEINTRESOURCE(IDD_INDEX),
Globals.active_win->hMainWnd, WINHELP_SearchDlgProc,
(LPARAM)hlpfile);
if (ret > 1)
{
ret -= 2;
WINE_TRACE("got %d as an offset\n", ret);
WINHELP_CreateHelpWindowByOffset(hlpfile, ret, Globals.active_win->info, SW_NORMAL);
}
return TRUE;
}

View file

@ -20,9 +20,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#ifndef __WINHELP_H__
#define __WINHELP_H__
#define MAX_LANGUAGE_NUMBER 255 #define MAX_LANGUAGE_NUMBER 255
#define MAX_STRING_LEN 255 #define MAX_STRING_LEN 255
@ -175,8 +172,10 @@ extern FARPROC Callbacks[];
BOOL WINHELP_CreateHelpWindowByHash(HLPFILE*, LONG, HLPFILE_WINDOWINFO*, int); BOOL WINHELP_CreateHelpWindowByHash(HLPFILE*, LONG, HLPFILE_WINDOWINFO*, int);
BOOL WINHELP_CreateHelpWindowByMap(HLPFILE*, LONG, HLPFILE_WINDOWINFO*, int); BOOL WINHELP_CreateHelpWindowByMap(HLPFILE*, LONG, HLPFILE_WINDOWINFO*, int);
BOOL WINHELP_CreateHelpWindowByOffset(HLPFILE*, LONG, HLPFILE_WINDOWINFO*, int);
BOOL WINHELP_CreateHelpWindow(HLPFILE_PAGE*, HLPFILE_WINDOWINFO*, int); BOOL WINHELP_CreateHelpWindow(HLPFILE_PAGE*, HLPFILE_WINDOWINFO*, int);
BOOL WINHELP_GetOpenFileName(LPSTR, int); BOOL WINHELP_GetOpenFileName(LPSTR, int);
BOOL WINHELP_CreateIndexWindow(void);
INT WINHELP_MessageBoxIDS(UINT, UINT, WORD); INT WINHELP_MessageBoxIDS(UINT, UINT, WORD);
INT WINHELP_MessageBoxIDS_s(UINT, LPCSTR, UINT, WORD); INT WINHELP_MessageBoxIDS_s(UINT, LPCSTR, UINT, WORD);
HLPFILE* WINHELP_LookupHelpFile(LPCSTR lpszFile); HLPFILE* WINHELP_LookupHelpFile(LPCSTR lpszFile);
@ -194,5 +193,3 @@ extern const char STRING_DIALOG_TEST[];
/* Buttons */ /* Buttons */
#define WH_FIRST_BUTTON 500 #define WH_FIRST_BUTTON 500
#endif /* __WINHELP_H__ */

View file

@ -30,3 +30,6 @@
#define STID_HELP_FILES_HLP 0x12C #define STID_HELP_FILES_HLP 0x12C
#define STID_DIALOG_TEST 0x12D #define STID_DIALOG_TEST 0x12D
#define STID_FILE_NOT_FOUND_s 0x12E #define STID_FILE_NOT_FOUND_s 0x12E
#define IDD_INDEX 0x150
#define IDC_INDEXLIST 0x151