Einzelnen Beitrag anzeigen

OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: JPEG Datei in NonVCL Prog laden

  Alt 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!
  Mit Zitat antworten Zitat