' GdiPlusInit.ab

Const Enum DebugEventLevel
	DebugEventLevelFatal
	DebugEventLevelWarning
End Enum

TypeDef DebugEventProc = *Sub(level As DebugEventLevel, message As *CHAR)

TypeDef NotificationHookProc = *Function(/*OUT*/ ByRef token As ULONG_PTR) As Status
TypeDef NotificationUnhookProc = *Sub(ByVal token As ULONG_PTR)

Type GdiplusStartupInput
'Class GdiplusStartupInput
'Public
	GdiplusVersion As DWord
	DebugEventCallback As DebugEventProc
	SuppressBackgroundThread As BOOL
	SuppressExternalCodecs As BOOL

'	Sub GdiplusStartupInput()(debugEventCallback As DebugEventProc, suppressBackgroundThread As BOOL, suppressExternalCodecs As BOOL)
'		GdiplusVersion = 1
'		DebugEventCallback = debugEventCallback
'		SuppressBackgroundThread = suppressBackgroundThread
'		SuppressExternalCodecs = suppressExternalCodecs
'	End Sub
'End Class
End Type

Type Align(8) GdiplusStartupOutput
	NotificationHook As NotificationHookProc
	NotificationUnhook As NotificationUnhookProc
End Type

Declare Function GdiplusStartup Lib "GdiPlus.dll" (
	/*OUT*/ ByRef token As ULONG_PTR,
	        ByRef input As GdiplusStartupInput,
	/*OUT*/ ByVal output As *GdiplusStartupOutput) As Status

Declare Sub GdiplusShutdown Lib "GdiPlus.dll" (ByVal token As ULONG_PTR)
