Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
Delphi 5 Enterprise
|
Re: JPEG Datei in NonVCL Prog laden
21. Nov 2003, 23:10
HY Choose!
Mit Deinem Wert klappt es nicht. Habe im Netz der Netz diese Lottozahlen gefunden:
IID_IPicture : TGUID = '{7BF80980-BF32-101A-8BBB-00AA00300CAB}';
Und was soll ich sagen ... ICH KANN JPEG´s LADEN!!!! Läuft wie geschmiert. Hier die offenen Delphi-Sossen:
Delphi-Quellcode:
Var
pPicture:IPicture;
Function LoadPicture(AFile: String):Boolean;
Var
hFile,hMem:THandle;
dwFileSize,dwBytesRead:DWord;
pData:Pointer;
bRead:Boolean;
hRes:HResult;
pStream:IStream;
Begin
// open file
Result:=FALSE;
hFile:=CreateFile(PChar(AFile),GENERIC_READ,0,NIL,OPEN_EXISTING,0,0);
if (hFile = INVALID_HANDLE_VALUE) Then Exit;
// get file size
dwFileSize:=GetFileSize(hFile,NIL);
If (dwFileSize = -1) Then Exit;
// get memory objekt
hMem:=GlobalAlloc(GMEM_MOVEABLE Or GMEM_NODISCARD, dwFileSize);
If(hMem = 0) Then Exit;
pData := GlobalLock(hMem);
If (pData = NIL) Then Exit;
bRead:=ReadFile(hFile, pData^ , dwFileSize, dwBytesRead, NIL);
CloseHandle(hFile);
GlobalUnlock(hMem);
If Not(bRead) Then Exit;
// create IStream from global memory
pStream:=NIL;
hRes:=CreateStreamOnHGlobal(hMem, TRUE, pStream);
If FAILED(hRes) Or (pStream = NIL) Then exit;
// Create IPicture from image file
hRes := OleLoadPicture(pStream, dwFileSize, FALSE, IID_IPicture, pPicture);
If (hRes=S_OK) And (pPicture <> NIL) Then Result:=TRUE;
pStream := NIL;
End;
Gute N8 und noch mal DANKE an Luckie
OLLI
No Pain No Gain!
|
|
Zitat
|