static IHTMLDocument2 *create_doc_with_string(const char *str) { IPersistStreamInit *init; IStream *stream; IHTMLDocument2 *doc; HGLOBAL mem; SIZE_T len; notif_doc = doc = create_document(); if(!doc) return NULL; doc_complete = FALSE; len = strlen(str); mem = GlobalAlloc(0, len); memcpy(mem, str, len); CreateStreamOnHGlobal(mem, TRUE, &stream); IHTMLDocument2_QueryInterface(doc, &IID_IPersistStreamInit, (void**)&init); IPersistStreamInit_Load(init, stream); IPersistStreamInit_Release(init); IStream_Release(stream); return doc; }
int main() { FILE *file_template = fopen("template.in", "r"); FILE *file_values = fopen("values.in", "r"); char *line = NULL; size_t len = 0; ssize_t read; if (file_values == NULL) { printf("Can't open template.in file!"); return 0; } if (file_values == NULL) { printf("Can't open values.in file!"); return 0; } while ((read = getline(&line, &len, file_values)) != -1) { if (line[0] == '-') { /* Regenerate enviroment and create last document */ create_document(file_template); prepare_environment(); /* Set document number */ strcpy(document_number, get_value(line, len)); } else { /* Save current template value on binary tree */ save_value(get_number(line), get_value(line, len), firstValue, len); } } /* Create last document */ create_document(file_template); free_memory(firstValue); if (line) { free(line); } fclose(file_template); fclose(file_values); return 0; }