[PATCH 2/3] [WinHelp]: remove the internal data used for the old rendering

Eric Pouech eric.pouech at orange.fr
Thu May 1 14:17:04 CDT 2008




A+
---

 programs/winhelp/hlpfile.c |  377 ++------------------------------------------
 programs/winhelp/hlpfile.h |   40 -----
 2 files changed, 18 insertions(+), 399 deletions(-)


diff --git a/programs/winhelp/hlpfile.c b/programs/winhelp/hlpfile.c
index 95ec432..0d76ddd 100644
--- a/programs/winhelp/hlpfile.c
+++ b/programs/winhelp/hlpfile.c
@@ -51,15 +51,6 @@ static inline unsigned GET_UINT(const BYTE* buffer, unsigned i)
 
 static HLPFILE *first_hlpfile = 0;
 
-static struct
-{
-    UINT                wFont;
-    UINT                wIndent;
-    UINT                wHSpace;
-    UINT                wVSpace;
-    HLPFILE_LINK*       link;
-} attributes;
-
 static BOOL  HLPFILE_DoReadHlpFile(HLPFILE*, LPCSTR);
 static BOOL  HLPFILE_ReadFileToBuffer(HLPFILE*, HFILE);
 static BOOL  HLPFILE_FindSubFile(HLPFILE*, LPCSTR, BYTE**, BYTE**);
@@ -431,7 +422,6 @@ static BOOL HLPFILE_AddPage(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigned ref
 
     page->file            = hlpfile;
     page->next            = NULL;
-    page->first_paragraph = NULL;
     page->first_macro     = NULL;
     page->first_link      = NULL;
     page->wNumber         = GET_UINT(buf, 0x21);
@@ -445,8 +435,6 @@ static BOOL HLPFILE_AddPage(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigned ref
                page->wNumber, page->lpszTitle, 
                page->browse_bwd, page->offset, page->browse_fwd);
 
-    memset(&attributes, 0, sizeof(attributes));
-
     /* now load macros */
     ptr = page->lpszTitle + strlen(page->lpszTitle) + 1;
     while (ptr < page->lpszTitle + titlesize)
@@ -1001,228 +989,6 @@ static  BOOL    HLPFILE_RtfAddGfxByIndex(struct RtfData* rd, HLPFILE *hlpfile,
 }
 
 /******************************************************************
- *		HLPFILE_LoadBitmap
- *
- *
- */
-static BOOL HLPFILE_LoadBitmap(BYTE* beg, BYTE type, BYTE pack, 
-                               HLPFILE_PARAGRAPH* paragraph)
-{
-    BYTE*               ptr;
-    BYTE*               pict_beg;
-    BITMAPINFO*         bi;
-    unsigned long       off, csz;
-    HDC                 hdc;
-
-    bi = HeapAlloc(GetProcessHeap(), 0, sizeof(*bi));
-    if (!bi) return FALSE;
-
-    ptr = beg + 2; /* for type and pack */
-
-    bi->bmiHeader.biSize          = sizeof(bi->bmiHeader);
-    bi->bmiHeader.biXPelsPerMeter = fetch_ulong(&ptr);
-    bi->bmiHeader.biYPelsPerMeter = fetch_ulong(&ptr);
-    bi->bmiHeader.biPlanes        = fetch_ushort(&ptr);
-    bi->bmiHeader.biBitCount      = fetch_ushort(&ptr);
-    bi->bmiHeader.biWidth         = fetch_ulong(&ptr);
-    bi->bmiHeader.biHeight        = fetch_ulong(&ptr);
-    bi->bmiHeader.biClrUsed       = fetch_ulong(&ptr);
-    bi->bmiHeader.biClrImportant  = fetch_ulong(&ptr);
-    bi->bmiHeader.biCompression   = BI_RGB;
-    if (bi->bmiHeader.biBitCount > 32) WINE_FIXME("Unknown bit count %u\n", bi->bmiHeader.biBitCount);
-    if (bi->bmiHeader.biPlanes != 1) WINE_FIXME("Unsupported planes %u\n", bi->bmiHeader.biPlanes);
-    bi->bmiHeader.biSizeImage = (((bi->bmiHeader.biWidth * bi->bmiHeader.biBitCount + 31) & ~31) / 8) * bi->bmiHeader.biHeight;
-    WINE_TRACE("planes=%d bc=%d size=(%d,%d)\n",
-               bi->bmiHeader.biPlanes, bi->bmiHeader.biBitCount, 
-               bi->bmiHeader.biWidth, bi->bmiHeader.biHeight);
-
-    csz = fetch_ulong(&ptr);
-    fetch_ulong(&ptr); /* hotspot size */
-
-    off = GET_UINT(ptr, 0);     ptr += 4;
-    /* GET_UINT(ptr, 0); hotspot offset */ ptr += 4;
-    
-    /* now read palette info */
-    if (type == 0x06)
-    {
-        unsigned nc = bi->bmiHeader.biClrUsed;
-        unsigned i;
-        
-        /* not quite right, especially for bitfields type of compression */
-        if (!nc && bi->bmiHeader.biBitCount <= 8)
-            nc = 1 << bi->bmiHeader.biBitCount;
-        
-        bi = HeapReAlloc(GetProcessHeap(), 0, bi, sizeof(*bi) + nc * sizeof(RGBQUAD));
-        if (!bi) return FALSE;
-        for (i = 0; i < nc; i++)
-        {
-            bi->bmiColors[i].rgbBlue     = ptr[0];
-            bi->bmiColors[i].rgbGreen    = ptr[1];
-            bi->bmiColors[i].rgbRed      = ptr[2];
-            bi->bmiColors[i].rgbReserved = 0;
-            ptr += 4;
-        }
-    }
-    pict_beg = HLPFILE_DecompressGfx(beg + off, csz, bi->bmiHeader.biSizeImage, pack);
-    
-    paragraph->u.gfx.u.bmp.hBitmap = CreateDIBitmap(hdc = GetDC(0), &bi->bmiHeader, 
-                                                    CBM_INIT, pict_beg, 
-                                                    bi, DIB_RGB_COLORS);
-    ReleaseDC(0, hdc);      
-    if (!paragraph->u.gfx.u.bmp.hBitmap)
-        WINE_ERR("Couldn't create bitmap\n");
-    
-    HeapFree(GetProcessHeap(), 0, bi);
-    if (pict_beg != beg + off) HeapFree(GetProcessHeap(), 0, pict_beg);
-
-    return TRUE;
-}
-
-/******************************************************************
- *		HLPFILE_LoadMetaFile
- *
- *
- */
-static BOOL     HLPFILE_LoadMetaFile(BYTE* beg, BYTE pack, HLPFILE_PARAGRAPH* paragraph)
-{
-    BYTE*               ptr;
-    unsigned long       size, csize;
-    unsigned long       off, hsoff;
-    BYTE*               bits;
-    LPMETAFILEPICT      lpmfp;
-
-    WINE_TRACE("Loading metafile\n");
-
-    ptr = beg + 2; /* for type and pack */
-
-    lpmfp = &paragraph->u.gfx.u.mfp;
-    lpmfp->mm = fetch_ushort(&ptr); /* mapping mode */
-
-    lpmfp->xExt = GET_USHORT(ptr, 0);
-    lpmfp->yExt = GET_USHORT(ptr, 2);
-    ptr += 4;
-
-    size = fetch_ulong(&ptr); /* decompressed size */
-    csize = fetch_ulong(&ptr); /* compressed size */
-    fetch_ulong(&ptr); /* hotspot size */
-    off = GET_UINT(ptr, 0);
-    hsoff = GET_UINT(ptr, 4);
-    ptr += 8;
-
-    WINE_TRACE("sz=%lu csz=%lu (%d,%d) offs=%lu/%lu,%lu\n",
-               size, csize, lpmfp->xExt, lpmfp->yExt, off, (SIZE_T)(ptr - beg), hsoff);
-
-    bits = HLPFILE_DecompressGfx(beg + off, csize, size, pack);
-    if (!bits) return FALSE;
-
-    paragraph->cookie = para_metafile;
-
-    lpmfp->hMF = SetMetaFileBitsEx(size, bits);
-
-    if (!lpmfp->hMF)
-        WINE_FIXME("Couldn't load metafile\n");
-
-    if (bits != beg + off) HeapFree(GetProcessHeap(), 0, bits);
-
-    return TRUE;
-}
-
-/******************************************************************
- *		HLPFILE_LoadGfxByAddr
- *
- *
- */
-static  BOOL    HLPFILE_LoadGfxByAddr(HLPFILE *hlpfile, BYTE* ref,
-                                      unsigned long size, 
-                                      HLPFILE_PARAGRAPH* paragraph)
-{
-    unsigned    i, numpict;
-
-    numpict = GET_USHORT(ref, 2);
-    WINE_TRACE("Got picture magic=%04x #=%d\n", 
-               GET_USHORT(ref, 0), numpict);
-
-    for (i = 0; i < numpict; i++)
-    {
-        BYTE*   beg;
-        BYTE*   ptr;
-        BYTE    type, pack;
-
-        WINE_TRACE("Offset[%d] = %x\n", i, GET_UINT(ref, (1 + i) * 4));
-        beg = ptr = ref + GET_UINT(ref, (1 + i) * 4);
-
-        type = *ptr++;
-        pack = *ptr++;
-        
-        switch (type)
-        {
-        case 5: /* device dependent bmp */
-        case 6: /* device independent bmp */
-            HLPFILE_LoadBitmap(beg, type, pack, paragraph);
-            break;
-        case 8: 
-            HLPFILE_LoadMetaFile(beg, pack, paragraph);
-            break;
-        default: WINE_FIXME("Unknown type %u\n", type); return FALSE;
-        }
-
-        /* FIXME: hotspots */
-
-        /* FIXME: implement support for multiple picture format */
-        if (numpict != 1) WINE_FIXME("Supporting only one bitmap format per logical bitmap (for now). Using first format\n");
-        break;
-    }
-    return TRUE;
-}
-
-/******************************************************************
- *		HLPFILE_LoadGfxByIndex
- *
- *
- */
-static  BOOL    HLPFILE_LoadGfxByIndex(HLPFILE *hlpfile, unsigned index, 
-                                       HLPFILE_PARAGRAPH* paragraph)
-{
-    char        tmp[16];
-    BYTE        *ref, *end;
-    BOOL        ret;
-
-    WINE_TRACE("Loading picture #%d\n", index);
-
-    if (index < hlpfile->numBmps && hlpfile->bmps[index] != NULL)
-    {
-        paragraph->u.gfx.u.bmp.hBitmap = hlpfile->bmps[index];
-        return TRUE;
-    }
-
-    sprintf(tmp, "|bm%u", index);
-
-    if (!HLPFILE_FindSubFile(hlpfile, tmp, &ref, &end)) {WINE_WARN("no sub file\n"); return FALSE;}
-
-    ref += 9;
-
-    ret = HLPFILE_LoadGfxByAddr(hlpfile, ref, end - ref, paragraph);
-
-    /* cache bitmap */
-    if (ret && paragraph->cookie == para_bitmap)
-    {
-        if (index >= hlpfile->numBmps)
-        {
-            hlpfile->numBmps = index + 1;
-	    if (hlpfile->bmps)
-        	hlpfile->bmps = HeapReAlloc(GetProcessHeap(), 0, hlpfile->bmps, 
-                                        hlpfile->numBmps * sizeof(hlpfile->bmps[0]));
-	    else
-	    	hlpfile->bmps = HeapAlloc(GetProcessHeap(), 0, 
-                                        hlpfile->numBmps * sizeof(hlpfile->bmps[0]));
-
-        }
-        hlpfile->bmps[index] = paragraph->u.gfx.u.bmp.hBitmap;
-    }
-    return ret;
-}
-
-/******************************************************************
  *		HLPFILE_AllocLink
  *
  *
@@ -1248,17 +1014,13 @@ static HLPFILE_LINK*       HLPFILE_AllocLink(struct RtfData* rd, int cookie,
     link->hash       = hash;
     link->bClrChange = clrChange ? 1 : 0;
     link->window     = wnd;
-    link->wRefCount  = 1;
-    if (rd) {
     link->next       = rd->first_link;
     rd->first_link   = link;
     link->cpMin      = rd->char_pos;
     link->cpMax      = 0;
     rd->force_color  = clrChange;
-    link->wRefCount++;
     if (rd->current_link) WINE_FIXME("Pending link\n");
     rd->current_link = link;
-    }
 
     WINE_TRACE("Link[%d] to %s@%08x:%d\n",
                link->cookie, link->string, link->hash, link->window);
@@ -1283,7 +1045,6 @@ unsigned HLPFILE_HalfPointsToTwips(unsigned pts)
  */
 static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE *buf, BYTE* end)
 {
-    HLPFILE_PARAGRAPH *paragraph, **paragraphptr;
     UINT               textsize;
     BYTE              *format, *format_end;
     char              *text, *text_base, *text_end;
@@ -1295,9 +1056,6 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
     char               tmp[256];
     BOOL               ret = FALSE;
 
-    for (paragraphptr = &page->first_paragraph; *paragraphptr;
-         paragraphptr = &(*paragraphptr)->next) /* Nothing */;
-
     if (buf + 0x19 > end) {WINE_WARN("header too small\n"); return FALSE;};
 
     blocksize = GET_UINT(buf, 0);
@@ -1496,30 +1254,6 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
             textsize = strlen(text);
             if (textsize)
             {
-                paragraph = HeapAlloc(GetProcessHeap(), 0,
-                                      sizeof(HLPFILE_PARAGRAPH) + textsize + 1);
-                if (!paragraph) return FALSE;
-                *paragraphptr = paragraph;
-                paragraphptr = &paragraph->next;
-
-                paragraph->next            = NULL;
-                if (!rd)
-                {
-                paragraph->link            = attributes.link;
-                if (paragraph->link) paragraph->link->wRefCount++;
-                }
-                else paragraph->link       = NULL;
-                paragraph->cookie          = para_normal_text;
-                paragraph->u.text.wFont    = attributes.wFont;
-                paragraph->u.text.wVSpace  = attributes.wVSpace;
-                paragraph->u.text.wHSpace  = attributes.wHSpace;
-                paragraph->u.text.wIndent  = attributes.wIndent;
-                paragraph->u.text.lpszText = (char*)paragraph + sizeof(HLPFILE_PARAGRAPH);
-                strcpy(paragraph->u.text.lpszText, text);
-
-                attributes.wVSpace = 0;
-                attributes.wHSpace = 0;
-                if (rd) /* FIXME: TEMP */ {
                 if (rd->force_color)
                 {
                     if ((rd->current_link->cookie == hlp_link_popup) ?
@@ -1529,7 +1263,6 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
                 if (!HLPFILE_RtfAddText(rd, text)) goto done;
                 if (rd->force_color && !HLPFILE_RtfAddControl(rd, "}")) goto done;
                 rd->char_pos += textsize;
-                }
             }
             /* else: null text, keep on storing attributes */
             text += textsize + 1;
@@ -1557,8 +1290,8 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
                 {
                     unsigned    font = GET_USHORT(format, 1);
                     unsigned    fs;
-                    attributes.wFont = font;
-                    WINE_TRACE("Changing font to %d\n", attributes.wFont);
+
+                    WINE_TRACE("Changing font to %d\n", font);
                     format += 3;
                     fs = (4 * page->file->fonts[font].LogFont.lfHeight - 3) / 5;
                     /* FIXME: missing at least colors, also bold attribute looses information */
@@ -1575,9 +1308,8 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
 
 	    case 0x81:
                 if (!HLPFILE_RtfAddControl(rd, "\\line")) goto done;
-                attributes.wVSpace++;
                 format += 1;
-                if (rd) /* FIXME: TEMP */ rd->char_pos++;
+                rd->char_pos++;
                 break;
 
 	    case 0x82:
@@ -1593,17 +1325,14 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
                     }
                 }
                 else if (!HLPFILE_RtfAddControl(rd, "\\par")) goto done;
-                attributes.wVSpace++;
-                attributes.wIndent = 0;
                 format += 1;
-                if (rd)  /* FIXME: TEMP */ rd->char_pos++;
+                rd->char_pos++;
                 break;
 
 	    case 0x83:
                 if (!HLPFILE_RtfAddControl(rd, "\\tab")) goto done;
-                attributes.wIndent++;
                 format += 1;
-                if (rd)  /* FIXME: TEMP */ rd->char_pos++;
+                rd->char_pos++;
                 break;
 
 #if 0
@@ -1616,27 +1345,13 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
 	    case 0x87:
 	    case 0x88:
                 {
-                    BYTE    pos = (*format - 0x86);
                     BYTE    type = format[1];
                     long    size;
 
+                    /* FIXME: we don't use 'BYTE    pos = (*format - 0x86);' for the image position */
                     format += 2;
                     size = fetch_long(&format);
 
-                    paragraph = HeapAlloc(GetProcessHeap(), 0,
-                                          sizeof(HLPFILE_PARAGRAPH) + textsize);
-                    if (!paragraph) return FALSE;
-                    *paragraphptr = paragraph;
-                    paragraphptr = &paragraph->next;
-
-                    paragraph->next        = NULL;
-                    if (!rd){
-                    paragraph->link        = attributes.link;
-                    if (paragraph->link) paragraph->link->wRefCount++;
-                    }
-                    else paragraph->link   = NULL;
-                    paragraph->cookie      = para_bitmap;
-                    paragraph->u.gfx.pos   = pos;
                     switch (type)
                     {
                     case 0x22:
@@ -1646,23 +1361,15 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
                         switch (GET_SHORT(format, 0))
                         {
                         case 0:
-                            HLPFILE_LoadGfxByIndex(page->file, GET_SHORT(format, 2),
-                                                   paragraph);
-                            if (rd) { /* FIXME: TEMP */
                             HLPFILE_RtfAddGfxByIndex(rd, page->file, GET_SHORT(format, 2));
                             rd->char_pos++;
-                            }
                             break;
                         case 1:
-                            WINE_FIXME("does it work ??? %x<%lu>#%u\n", 
-                                       GET_SHORT(format, 0), 
+                            WINE_FIXME("does it work ??? %x<%lu>#%u\n",
+                                       GET_SHORT(format, 0),
                                        size, GET_SHORT(format, 2));
-                            HLPFILE_LoadGfxByAddr(page->file, format + 2, size - 4,
-                                                  paragraph);
-                            if (rd) { /* FIXME: TEMP */
                             HLPFILE_RtfAddGfxByAddr(rd, page->file, format + 2, size - 4);
                             rd->char_pos++;
-                            }
                            break;
                         default:
                             WINE_FIXME("??? %u\n", GET_SHORT(format, 0));
@@ -1676,24 +1383,17 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
                         WINE_FIXME("Got a type %d picture\n", type);
                         break;
                     }
-                    if (attributes.wVSpace) paragraph->u.gfx.pos |= 0x8000;
-
                     format += size;
                 }
                 break;
 
 	    case 0x89:
-                HLPFILE_FreeLink(attributes.link);
-                attributes.link = NULL;
                 format += 1;
-                if (rd) {
                 if (!rd->current_link)
                     WINE_FIXME("No existing link\n");
-                else
                 rd->current_link->cpMax = rd->char_pos;
                 rd->current_link = NULL;
                 rd->force_color = FALSE;
-                }
                 break;
 
             case 0x8B:
@@ -1718,20 +1418,16 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
             case 0xC8:
             case 0xCC:
                 WINE_TRACE("macro => %s\n", format + 3);
-                HLPFILE_FreeLink(attributes.link);
-                attributes.link = HLPFILE_AllocLink(rd, hlp_link_macro, (const char*)format + 3,
-                                                    GET_USHORT(format, 1), 0, !(*format & 4), -1);
+                HLPFILE_AllocLink(rd, hlp_link_macro, (const char*)format + 3,
+                                  GET_USHORT(format, 1), 0, !(*format & 4), -1);
                 format += 3 + GET_USHORT(format, 1);
                 break;
 
             case 0xE0:
             case 0xE1:
                 WINE_WARN("jump topic 1 => %u\n", GET_UINT(format, 1));
-                HLPFILE_FreeLink(attributes.link);
-                attributes.link = HLPFILE_AllocLink(rd, (*format & 1) ? hlp_link_link : hlp_link_popup,
-                                                    page->file->lpszPath, -1,
-                                                    GET_UINT(format, 1)-16,
-                                                    1, -1);
+                HLPFILE_AllocLink(rd, (*format & 1) ? hlp_link_link : hlp_link_popup,
+                                  page->file->lpszPath, -1, GET_UINT(format, 1)-16, 1, -1);
 
 
                 format += 5;
@@ -1741,10 +1437,9 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
 	    case 0xE3:
             case 0xE6:
             case 0xE7:
-                attributes.link = HLPFILE_AllocLink(rd, (*format & 1) ? hlp_link_link : hlp_link_popup,
-                                                    page->file->lpszPath, -1,
-                                                    GET_UINT(format, 1),
-                                                    !(*format & 4), -1);
+                HLPFILE_AllocLink(rd, (*format & 1) ? hlp_link_link : hlp_link_popup,
+                                  page->file->lpszPath, -1, GET_UINT(format, 1),
+                                  !(*format & 4), -1);
                 format += 5;
                 break;
 
@@ -1780,10 +1475,8 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd, BYTE
                         WINE_WARN("Unknown link type %d\n", type);
                         break;
                     }
-                    HLPFILE_FreeLink(attributes.link);
-                    attributes.link = HLPFILE_AllocLink(rd, (*format & 1) ? hlp_link_link : hlp_link_popup,
-                                                        ptr, -1, GET_UINT(format, 4),
-                                                        !(*format & 4), wnd);
+                    HLPFILE_AllocLink(rd, (*format & 1) ? hlp_link_link : hlp_link_popup,
+                                      ptr, -1, GET_UINT(format, 4), !(*format & 4), wnd);
                 }
                 format += 3 + GET_USHORT(format, 1);
                 break;
@@ -2861,41 +2554,6 @@ static BOOL HLPFILE_GetMap(HLPFILE *hlpfile)
     return TRUE;
 }
 
-/******************************************************************
- *		HLPFILE_DeleteLink
- *
- *
- */
-void HLPFILE_FreeLink(HLPFILE_LINK* link)
-{
-    if (link && !--link->wRefCount)
-    {
-        HeapFree(GetProcessHeap(), 0, link);
-    }
-}
-
-/***********************************************************************
- *
- *           HLPFILE_DeleteParagraph
- */
-static void HLPFILE_DeleteParagraph(HLPFILE_PARAGRAPH* paragraph)
-{
-    HLPFILE_PARAGRAPH* next;
-
-    while (paragraph)
-    {
-        next = paragraph->next;
-
-        if (paragraph->cookie == para_metafile)
-            DeleteMetaFile(paragraph->u.gfx.u.mfp.hMF);
-
-        HLPFILE_FreeLink(paragraph->link);
-
-        HeapFree(GetProcessHeap(), 0, paragraph);
-        paragraph = next;
-    }
-}
-
 /***********************************************************************
  *
  *           DeleteMacro
@@ -2923,7 +2581,6 @@ static void HLPFILE_DeletePage(HLPFILE_PAGE* page)
     while (page)
     {
         next = page->next;
-        HLPFILE_DeleteParagraph(page->first_paragraph);
         HLPFILE_DeleteMacro(page->first_macro);
         HeapFree(GetProcessHeap(), 0, page);
         page = next;
diff --git a/programs/winhelp/hlpfile.h b/programs/winhelp/hlpfile.h
index 7b67259..c37fa1c 100644
--- a/programs/winhelp/hlpfile.h
+++ b/programs/winhelp/hlpfile.h
@@ -40,49 +40,13 @@ typedef struct tagHlpFileLink
     enum {hlp_link_link, hlp_link_popup, hlp_link_macro} cookie;
     LPCSTR      string;         /* name of the file to for the link (NULL if same file) */
     LONG        hash;           /* topic index */
-    unsigned    bClrChange : 1, /* true if the link is green & underlined */
-                wRefCount;      /* number of internal references to this object */
+    unsigned    bClrChange : 1; /* true if the link is green & underlined */
     unsigned    window;         /* window number for displaying the link (-1 is current) */
     DWORD       cpMin;
     DWORD       cpMax;
     struct tagHlpFileLink* next;
 } HLPFILE_LINK;
 
-enum para_type {para_normal_text, para_debug_text, para_bitmap, para_metafile};
-
-typedef struct tagHlpFileParagraph
-{
-    enum para_type              cookie;
-
-    union
-    {
-        struct
-        {
-            LPSTR                       lpszText;
-            unsigned                    wFont;
-            unsigned                    wIndent;
-            unsigned                    wHSpace;
-            unsigned                    wVSpace;
-        } text;
-        struct
-        {
-            unsigned                    pos;    /* 0: center, 1: left, 2: right */
-            union 
-            {
-                struct 
-                {
-                    HBITMAP             hBitmap;
-                } bmp;
-                METAFILEPICT            mfp;
-            } u;
-        } gfx; /* for bitmaps and metafiles */
-    } u;
-
-    HLPFILE_LINK*               link;
-
-    struct tagHlpFileParagraph* next;
-} HLPFILE_PARAGRAPH;
-
 typedef struct tagHlpFileMacro
 {
     LPCSTR                      lpszMacro;
@@ -92,7 +56,6 @@ typedef struct tagHlpFileMacro
 typedef struct tagHlpFilePage
 {
     LPSTR                       lpszTitle;
-    HLPFILE_PARAGRAPH*          first_paragraph;
     HLPFILE_MACRO*              first_macro;
 
     HLPFILE_LINK*               first_link;
@@ -199,7 +162,6 @@ HLPFILE_PAGE* HLPFILE_PageByHash(HLPFILE* hlpfile, LONG lHash, ULONG* relative);
 HLPFILE_PAGE* HLPFILE_PageByMap(HLPFILE* hlpfile, LONG lMap, ULONG* relative);
 HLPFILE_PAGE* HLPFILE_PageByOffset(HLPFILE* hlpfile, LONG offset, ULONG* relative);
 LONG          HLPFILE_Hash(LPCSTR lpszContext);
-void          HLPFILE_FreeLink(HLPFILE_LINK* link);
 void          HLPFILE_FreeHlpFile(HLPFILE*);
 unsigned      HLPFILE_HalfPointsToTwips(unsigned pts);
 





More information about the wine-patches mailing list