SOL9 2.0 Class: MetaFile

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * MetaFile.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL++2000
#pragma once

#include <sol\Resource.h>

namespace SOL {

class MetaFile :public Resource {
  public:
    MetaFile(UINT size, const BYTE* data)
        :Resource("", SetEnhMetaFileBits(size, data)) { }
    MetaFile(HENHMETAFILE handle)
        :Resource("", (HANDLE)handle) { }
    MetaFile(const char* filename)
        :Resource(filename, GetEnhMetaFile(filename)) { }
    ~MetaFile() { 
            ::DeleteEnhMetaFile((HENHMETAFILE)getHandle());
    }
    void    draw(HDC hdc, const RECT* rect) {
            HENHMETAFILE handle = (HENHMETAFILE)getHandle();
            if(handle) ::PlayEnhMetaFile(hdc, handle, rect);
    }
    UINT     getBits(UINT size, BYTE* buffer) {
            return ::GetEnhMetaFileBits((HENHMETAFILE)getHandle(), size, buffer);
    }
    UINT    getFileDescription(UINT size, LPTSTR description) {
            return ::GetEnhMetaFileDescription((HENHMETAFILE)getHandle(),
                size, description);
    }    
    UINT    getFileHeader(UINT size, ENHMETAHEADER* emh) {
            return ::GetEnhMetaFileHeader((HENHMETAFILE)getHandle(), size, emh);
    }
    UINT    getFilePaletteEntries(UINT entries, PALETTEENTRY* pe) {
            return ::GetEnhMetaFilePaletteEntries((HENHMETAFILE)getHandle(),
                entries, pe);
    }

    HENHMETAFILE copy(char* filename) {
        return ::CopyEnhMetaFile((HENHMETAFILE)getHandle(), filename);
    }
};

}


Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.