char *GetHtml() { // first add the homepage const char *index = doc->GetHomePath(); ScopedMem<WCHAR> url(doc->ToStr(index)); Visit(NULL, url, 0); // then add all pages linked to from the table of contents doc->ParseToc(this); // finally add all the remaining HTML files Vec<char *> *paths = doc->GetAllPaths(); for (size_t i = 0; i < paths->Count(); i++) { char *path = paths->At(i); if (str::EndsWithI(path, ".htm") || str::EndsWithI(path, ".html")) { if (*path == '/') path++; url.Set(str::conv::FromUtf8(path)); Visit(NULL, url, -1); } } FreeVecMembers(*paths); delete paths; return html.StealData(); }