3.51 DM_PictureReaderHandler

Mit dieser Funktion können benutzerdefinierte Grafik-Handler (GFX-Handler) beim IDM registriert und verwaltet werden. Diese Handler werden vom IDM zum Laden von Bildern aufgerufen, die bei Tile-Ressourcen oder Image-Objekten angegeben sind.

Benutzerdefinierte Grafik-Handler sind in DM_PictureHandler beschrieben.

DM_Boolean DML_default DM_EXPORT DM_PictureReaderHandler
(
  DM_PictureReaderProc  funcp,
  DM_UInt  operation,
  DM_UInt  options
)

Parameter

-> DM_PictureReaderProc funcp

Zeiger auf einen Grafik-Handler, für den die in operation definierte Aktion ausgeführt erden soll.

Der Handler muss folgendes Format aufweisen:

DM_Boolean DML_default DM_CALLBACK <ProcName>
(
  DM_PicInfo * pic
)
{
  /* benutzerdefinierter Code */
}

Entsprechend ist der Datentyp DM_PictureReaderProc wie folgt definiert:

typedef DM_Boolean (DML_default DM_CALLBACK * DM_PictureReaderProc) __((DM_PicInfo * pic));

-> DM_UInt operation

Dieser Parameter definiert, welche Aktion für den Grafik-Handler ausgeführt werden soll.

Wertebereich

  • DMF_RegisterHandler

    Meldet den Handler beim IDM an.

  • DMF_WithdrawHandler

    Meldet den Handler beim IDM ab.

  • DMF_EnableHandler

    Aktiviert den Handler.

  • DMF_DisableHandler

    Deaktiviert den Handler.

Nach seiner Anmeldung ist ein Grafik-Handler automatisch aktiv. Es können mehrere Grafik-Handler angemeldet werden, aber jeder Handler höchstens einmal.

-> DM_UInt options

Zurzeit unbenutzt; muss 0 sein.

Rückgabewert

DM_TRUE

Die Aktion konnte erfolgreich ausgeführt werden.

DM_FALSE

Im Fehlerfall.

Anmerkungen

Die angemeldeten Grafik-Handler werden in der umgekehrten Reihenfolge aufgerufen, in der sie angemeldet wurden.

Da Grafik-Handler beim Laden von Bildern Speicher allokieren, darf ein Handler nicht deaktiviert oder abgemeldet werden, bevor der von ihm reservierte Speicher nicht wieder von ihm oder einem anderen Grafik-Handler freigegeben wurde. Wenn alle Grafik-Handler ihren Speicher auf die selbe Art und Weise allokieren, kann ein Grafik-Handler den von anderen Handlern allokierten Speicher freigeben. Dann gibt der erste aufgerufene Grafik-Handler den Speicher frei, unabhängig davon, welcher Handler ihn zuvor allokiert hat. In diesem Fall genügt es, wenn ein Grafik-Handler angemeldet und aktiv bleibt, um den von Grafik-Handlern allokierten Speicher wieder freizugeben.

Beim Beenden einer Anwendung ist das Abmelden von Grafik-Handlern nicht notwendig.

Siehe auch

Funktion DM_PictureHandler