Guybrush Threepwood Geschrieben 23. November 2005 Geschrieben 23. November 2005 Blöder Titel ich weiß :hells: Aber ich habe folgende Funktion um ein beliebiges Bild (z.B. ein Gif) von der Festplatte zu laden: HBITMAP LoadAnImage(const char* FileName) { // Use IPicture stuff to use JPG / GIF files IPicture* p; IStream* s; HGLOBAL hG; void* pp; FILE* fp; // Read file in memory fp = fopen(FileName,"rb"); if (!fp) return NULL; fseek(fp,0,SEEK_END); int fs = ftell(fp); fseek(fp,0,SEEK_SET); hG = GlobalAlloc(GPTR,fs); if (!hG) { fclose(fp); return NULL; } pp = (void*)hG; fread(pp,1,fs,fp); fclose(fp); // Create an IStream so IPicture can CreateStreamOnHGlobal(hG,false,&s); if (!s) { GlobalFree(hG); return NULL; } OleLoadPicture(s,0,false,IID_IPicture,(void**)&p); if (!p) { s->Release(); GlobalFree(hG); return NULL; } s->Release(); GlobalFree(hG); HBITMAP hB = 0; p->get_Handle((unsigned int*)&hB); // Copy the image. Necessary, because upon p's release, // the handle is destroyed. HBITMAP hBB = (HBITMAP)CopyImage(hB,IMAGE_BITMAP,0,0, LR_COPYRETURNORG); p->Release(); return hBB; } [/PHP] Hat jemand eine Idee wie ich statt einer Datei eine Ressource die ich meiner Anwendung hinzugefügt habe verwenden kann? Zitieren
Guybrush Threepwood Geschrieben 23. November 2005 Autor Geschrieben 23. November 2005 Ok hat sich erledigt. Man kann die Resource mit FindResource ermitteln und dann mit LoadResource und LockResource laden. Danach dann einfach mit SizeofResource die Größe für GloblaAlloc ermitteln und mit memcpy umkopieren. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.