' Classes/System/Drawing/Imaging/Metafile.ab Namespace System Namespace Drawing Namespace Imaging Class Metafile Inherits Image Public Sub Metafile(hWmf As HMETAFILE, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader, deleteWmf As BOOL) Image(CreateMetafileFromWmf(hWmf, wmfPlaceableFileHeader, deleteWmf) As *GpImage) End Sub Sub Metafile(hEmf As HENHMETAFILE, deleteEmf As BOOL) Image(CreateMetafileFromEmf(hEmf, deleteEmf) As *GpImage) End Sub Sub Metafile(filename As PCWSTR) Image(CreateMetafileFromFile(filename) As *GpImage) End Sub Sub Metafile(filename As String) Image(CreateMetafileFromFile(ToWCStr(filename)) As *GpImage) End Sub Sub Metafile(filename As PCWSTR, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader) Image(CreateMetafileFromWmfFile(filename, wmfPlaceableFileHeader) As *GpImage) End Sub Sub Metafile(filename As String, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader) Image(CreateMetafileFromWmfFile(ToWCStr(filename), wmfPlaceableFileHeader) As *GpImage) End Sub Sub Metafile(stream As IStream) Image(CreateMetafileFromStream(stream) As *GpImage) End Sub Sub Metafile(referenceHdc As HDC, emfType As EmfType, description As String) Image(RecordMetafile(referenceHdc, NULL, MetafileFrameUnit.GdiCompatible, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(referenceHdc As HDC, emfType As EmfType, description As PCWSTR) Image(RecordMetafile(referenceHdc, NULL, MetafileFrameUnit.GdiCompatible, emfType, description) As *GpImage) End Sub Sub Metafile(referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As String) Image(RecordMetafile(referenceHdc, frameRect, frameUnit, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) Image(RecordMetafile(referenceHdc, frameRect, frameUnit, emfType, description) As *GpImage) End Sub Sub Metafile(referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As String) Image(RecordMetafile(referenceHdc, VarPtr(frameRect), frameUnit, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) Image(RecordMetafile(referenceHdc, VarPtr(frameRect), frameUnit, emfType, description) As *GpImage) End Sub Sub Metafile(fileName As PCWSTR, referenceHdc As HDC, emfType As EmfType, description As PCWSTR) Image(RecordMetafileFileName(fileName, referenceHdc, ByVal NULL, MetafileFrameUnit.GdiCompatible, emfType, description) As *GpImage) End Sub Sub Metafile(fileName As PCWSTR, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As String) Image(RecordMetafileFileNameI(fileName, referenceHdc, frameRect, frameUnit, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(fileName As PCWSTR, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) Image(RecordMetafileFileNameI(fileName, referenceHdc, frameRect, frameUnit, emfType, description) As *GpImage) End Sub Sub Metafile(fileName As PCWSTR, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As String) Image(RecordMetafileFileName(fileName, referenceHdc, frameRect, frameUnit, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(fileName As PCWSTR, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) Image(RecordMetafileFileName(fileName, referenceHdc, frameRect, frameUnit, emfType, description) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, emfType As EmfType, description As String) Image(RecordMetafileStream(stream, referenceHdc, ByVal NULL, MetafileFrameUnit.GdiCompatible, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, emfType As EmfType, description As PCWSTR) Image(RecordMetafileStream(stream, referenceHdc, ByVal NULL, MetafileFrameUnit.GdiCompatible, emfType, description) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, description As String) Image(RecordMetafileStreamI(stream, referenceHdc, frameRect, frameUnit, EmfType.EmfPlusDual, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, description As PCWSTR) Image(RecordMetafileStreamI(stream, referenceHdc, frameRect, frameUnit, EmfType.EmfPlusDual, description) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As String) Image(RecordMetafileStreamI(stream, referenceHdc, frameRect, frameUnit, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) Image(RecordMetafileStreamI(stream, referenceHdc, frameRect, frameUnit, emfType, description) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, description As String) Image(RecordMetafileStream(stream, referenceHdc, frameRect, frameUnit, EmfType.EmfPlusDual, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, description As PCWSTR) Image(RecordMetafileStream(stream, referenceHdc, frameRect, frameUnit, EmfType.EmfPlusDual, description) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As String) Image(RecordMetafileStream(stream, referenceHdc, frameRect, frameUnit, emfType, ToWCStr(description)) As *GpImage) End Sub Sub Metafile(stream As IStream, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) Image(RecordMetafileStream(stream, referenceHdc, frameRect, frameUnit, emfType, description) As *GpImage) End Sub Private Static Function CreateMetafileFromWmf(hWmf As HMETAFILE, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader, deleteWmf As BOOL) As *GpMetafile SetStatus(GdipCreateMetafileFromWmf(hWmf, deleteWmf, wmfPlaceableFileHeader, CreateMetafileFromWmf)) End Function Static Function CreateMetafileFromEmf(hEmf As HENHMETAFILE, deleteEmf As BOOL) As *GpMetafile SetStatus(GdipCreateMetafileFromEmf(hEmf, deleteEmf, CreateMetafileFromEmf)) End Function Static Function CreateMetafileFromFile(filename As PCWSTR) As *GpMetafile SetStatus(GdipCreateMetafileFromFile(filename, CreateMetafileFromFile)) End Function Static Function CreateMetafileFromWmfFile(filename As PCWSTR, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader) As *GpMetafile SetStatus(GdipCreateMetafileFromWmfFile(filename, wmfPlaceableFileHeader, CreateMetafileFromWmfFile)) End Function Static Function CreateMetafileFromStream(stream As IStream) As *GpMetafile ' SetStatus(GdipCreateMetafileFromStream(stream, CreateMetafileFromStream)) Throw New NotImplementedException End Function Static Function RecordMetafile(referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) As *GpMetafile SetStatus(GdipRecordMetafileI(referenceHdc, emfType, frameRect, frameUnit, description, RecordMetafile)) End Function ' BUG: なぜかframeRectをByRef RectangleFとするとエラーになる。 Static Function RecordMetafile(referenceHdc As HDC, frameRect As *RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) As *GpMetafile SetStatus(GdipRecordMetafile(referenceHdc, emfType, ByVal frameRect, frameUnit, description, RecordMetafile)) End Function Static Function RecordMetafileFileNameI(fileName As PCWSTR, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) As *GpMetafile SetStatus(GdipRecordMetafileFileNameI(fileName, referenceHdc, emfType, frameRect, frameUnit, description, RecordMetafileFileNameI)) End Function Static Function RecordMetafileFileName(fileName As PCWSTR, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) As *GpMetafile SetStatus(GdipRecordMetafileFileName(fileName, referenceHdc, emfType, frameRect, frameUnit, description, RecordMetafileFileName)) End Function Static Function RecordMetafileStreamI(stream As IStream, referenceHdc As HDC, ByRef frameRect As Rectangle, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) As *GpMetafile ' SetStatus(GdipRecordMetafileStreamI(stream, referenceHdc, emfType, frameRect, frameUnit, description, RecordMetafileStreamI)) Throw New NotImplementedException End Function Static Function RecordMetafileStream(stream As IStream, referenceHdc As HDC, ByRef frameRect As RectangleF, frameUnit As MetafileFrameUnit, emfType As EmfType, description As PCWSTR) As *GpMetafile ' SetStatus(GdipRecordMetafileStream(stream, referenceHdc, emfType, frameRect, frameUnit, description, RecordMetafileStream)) Throw New NotImplementedException End Function Public Static Function GetMetafileHeader(hWmf As HMETAFILE, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader) As MetafileHeader SetStatus(GdipGetMetafileHeaderFromWmf(hWmf, wmfPlaceableFileHeader, GetMetafileHeader)) End Function Static Function GetMetafileHeader(hEmf As HENHMETAFILE) As MetafileHeader SetStatus(GdipGetMetafileHeaderFromEmf(hEmf, GetMetafileHeader)) End Function Static Function GetMetafileHeader(filename As String) As MetafileHeader GetMetafileHeader = GetMetafileHeader(ToWCStr(filename)) End Function Static Function GetMetafileHeader(filename As PCWSTR) As MetafileHeader SetStatus(GdipGetMetafileHeaderFromFile(filename, GetMetafileHeader)) End Function Static Function GetMetafileHeader(stream As IO.Stream) As MetafileHeader ' GetMetafileHeader = GetMetafileHeader(stream) Throw New NotImplementedException End Function Static Function GetMetafileHeader(stream As IStream) As MetafileHeader ' SetStatus(GdipGetMetafileHeaderFromStream(NativeMetafile, stream)) Throw New NotImplementedException End Function Function GetMetafileHeader() As MetafileHeader SetStatus(GdipGetMetafileHeaderFromMetafile(NativeMetafile, GetMetafileHeader)) End Function Function GetHEnhMetafile() As HENHMETAFILE SetStatus(GdipGetHemfFromMetafile(NativeMetafile, GetHEnhMetafile)) End Function Sub PlayRecord(recordType As EmfPlusRecordType, flags As DWord, dataSize As DWord, data AS *Byte) SetStatus(GdipPlayMetafileRecord(NativeMetafile, recordType, flags, dataSize, data)) End Sub Function NativeMetafile() As *GpMetafile NativeMetafile = NativeImage As *GpMetafile End Function End Class End Namespace End Namespace End Namespace