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