예제 #1
0
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;
}
예제 #2
0
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;
}