Directory Contents Search << >>


DaVinci 4: DaVinci Funktion ipCreateStreamOnHmmio: IStream-Interface für HMMIO-Handle erzeugen

Die Funktion ipCreateStreamOnHmmio erzeugt ein neues Objekt mit IStream Interface, das als Stellvertreter für ein HMMIO Datei-Handle von der Windows API-Funktio mmioOpen verwendet werden kann.

HRESULT WINAPI ipCreateStreamOnHmmio(

HMMIO hmmio,

BOOL owner,

DWORD grfMode,

IStream **ppstm);

hmmio

HMMIO

HMMIO-Dateihandle von einem Aufruf der Windows API-Funktio mmioOpen.

owner

BOOL

TRUE, wenn das HMMIO-Handle durch Aufruf von mmioClose geschlossen werden soll, wenn das IStream-Objekt geschlossen wird.

grfMode

DWORD

STGM_READ wenn das Objekt nur zum Lesen geöffnet wurde, sonst STGM_READWRITE.

ppstm

IStream **

Zeiger auf eine Variable vom Typ IStream *, die einen Zeiger auf das neu erzeugte Objekt erhalten wird.

Rückgabewert

Der Rückgabewert ist S_OK (0), wenn kein Fehler auftrat, E_OUTOFMEMORY, wenn das Objekt nicht erzeugt werden konnte.

Anmerkungen

Diese Funktion unterstützt die Portierung von Anwendungen, die für DaVinci 3 entwickelt wurden.

Das neu erzeugte Objekt mit IStream Interface muss durch Aufruf seiner Release()-Methode freigegeben werden.

Anwendungsbeispiel

Beispiel: Import einer Grafik von einem HMMIO-Stream

/* ImportDIBFromHmmio

*

* Lädt eine DIB aus einem HMMIO-Stream

*/

HDIB ImportDIBFromHmmio(HMMIO hmmio)

{

char FileName[256];

DAVPARAMS DavParams;

HDIB hresult=NULL;

FileName[0]=0;

memset(&DavParams, 0, sizeof(DavParams));

DavParams.dwStructSize = sizeof(DAVPARAMS);

DavParams.dwFlags = IPF_DIB;

DavParams.lpszFileName = "dummy.jpg";

DavParams.dwFileType = IPT_JPG;

if (!SUCCEEDED(ipCreateStreamOnHmmio(hmmio,FALSE,STGM_READ,

&DavParams.stream))

{

return NULL;

}

if (IPE_OK == ipImportInd(&DavParams))

{

/* Import was successfull... Display new Data */

hresult = DavParams.hDIB;

}

DavParams.stream->Release();

return hresult;

} // ImportDIBFromHmmio

ipImportInd

Datenquellen und Datensenken (Streams)

Struktur DAVPARAMS