TheCompCoder Junior Member
Joined: 03 Apr 2006 Posts: 1
|
Posted: Mon Apr 03, 2006 8:27 am Post subject: Problem mit Callback-Funktion bei EnumEnhMetaFile |
|
|
Versuche jetzt seit einiger Zeit die Records eines EMF´s auszulesen. Leider klappt der Aufruf der Callbackfunktion nicht. Habe vieles ausprobiert, aber es funktioniert nicht. Hat noch jemand eine Ahnung woran das liegen kann? (falsche Parameter, etc.). Ein Kurzauszug vom Quellcode:
// Callback Funktion, die angesprungen werden soll
static int CALLBACK EnhMetaFileProc (HDC hdc,
HANDLETABLE *lpht,
CONST ENHMETARECORD *lpmr,
int cObj,
LPARAM lParam)
{
CDC *pDC = (CDC *)lParam;
switch (lpmr->iType)
{
case META_SETWINDOWEXT: pDC->SetWindowExt
(lpmr->dParm[1], lpmr->dParm[0]); break;
}
....
....
return 1;
}
// Aufruf. CMetaFilePolygon ist eine Hilfsklasse die das Metafile erstellt und
// verwaltet.
static void HoleMetafile (CWnd* pWindow)
{
LPARAM *lParam;
CMetaFilePolygon MetaPolygon;
MetaPolygon.Create(NULL);
HDC myhdc = GetDC(pWindow->GetSafeHwnd());
CFile file ((LPCTSTR)"C:\\TEST1.EMF", CFile::modeRead);
MetaPolygon.Read(&file);
RECT myRect = {20,30,180,230};
HENHMETAFILE hEmf = MetaPolygon.GetMetaFileHandle();
bool ret = EnumEnhMetaFile (myhdc, hEmf, EnhMetaFileProc, lParam,
&myRect);
} |
|