Привет всем!
Мне надо загрузить метафайл и проиграть его.
Замахался.
Код примерно такой (я убрал все проверки):
HENHMETAFILE ee=(HENHMETAFILE)LoadResource(hi,FindResource(hi,MAKEINTRESOURCE(EMF01),"EMF"));
LockResource(ee);
UINT sz=GetEnhMetaFileBits(ee,0,NULL);
// вот здесь возвращается ноль с кодом ошибки 6
// "Неправильный описатель"
LPBYTE buf=(LPBYTE)GC_malloc(++sz);
GetEnhMetaFileBits(ee,sz,buf);
HENHMETAFILE emf=SetEnhMetaFileBits(sz,buf);
PlayEnhMetaFile(hdc,emf,&r);
Что я не так делаю?
Обрыл msdn — там только примеры по загрузке из файла и записи туда,
ну да это у меня и без них получилось, да не надо...
Поробовал по-другому, но этот код тоже не работает.
HENHMETAFILE ee=(HENHMETAFILE)LoadResource(hi,FindResource(hi,MAKEINTRESOURCE(rc),RESOURCE_EMF_TYPE));
LockResource(ee);
emf=CopyEnhMetaFile(ee,NULL);