
typedef struct {
	ULONG_PTR pfnQueryInterface;
	ULONG_PTR pfnAddRef;
	ULONG_PTR pfnRelease;
}IUnknownLite, *pIUnknownLite;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnGetSystemFontCollection;
	ULONG_PTR pfnCreateCustomFontCollection;
	ULONG_PTR pfnRegisterFontCollectionLoader;
	ULONG_PTR pfnUnregisterFontCollectionLoader;
	ULONG_PTR pfnCreateFontFileReference;
	ULONG_PTR pfnCreateCustomFontFileReference;
	ULONG_PTR pfnCreateFontFace;
	ULONG_PTR pfnCreateRenderingParams;
	ULONG_PTR pfnCreateMonitorRenderingParams;
	ULONG_PTR pfnCreateCustomRenderingParams;
	ULONG_PTR pfnRegisterFontFileLoader;
	ULONG_PTR pfnUnregisterFontFileLoader;
	ULONG_PTR pfnCreateTextFormat;
	ULONG_PTR pfnCreateTypography;
	ULONG_PTR pfnGetGdiInterop;
	ULONG_PTR pfnCreateTextLayout;
	ULONG_PTR pfnCreateGdiCompatibleTextLayout;
	ULONG_PTR pfnCreateEllipsisTrimmingSign;
	ULONG_PTR pfnCreateTextAnalyzer;
	ULONG_PTR pfnCreateNumberSubstitution;
	ULONG_PTR pfnCreateGlyphRunAnalysis;
}IDWriteFactoryLiteTbl, *pIDWriteFactoryLiteTbl;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnGetFontFamilyCount;
	ULONG_PTR pfnGetFontFamily;
	ULONG_PTR pfnFindFamilyName;
	ULONG_PTR pfnGetFontFromFontFace;
}IDWriteFontCollectionLiteTbl, * pIDWriteFontCollectionLiteTbl;

typedef struct {
	pIDWriteFontCollectionLiteTbl Vtbl;
	ULONG RefCount;
}IDWriteFontCollectionLite, * pIDWriteFontCollectionLite;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnGetAlphaTextureBounds;
	ULONG_PTR pfnGetAlphaBlendParams;
	ULONG_PTR pfnCreateAlphaTexture;
}IDWriteGlyphRunAnalysisLiteTbl, * pIDWriteGlyphRunAnalysisLiteTbl;

typedef struct {
	pIDWriteGlyphRunAnalysisLiteTbl Vtbl;
	ULONG RefCount;
}IDWriteGlyphRunAnalysisLite, * pIDWriteGlyphRunAnalysisLite;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnSetTextAlignment;
	ULONG_PTR pfnSetParagraphAlignment;
	ULONG_PTR pfnSetWordWrapping;
	ULONG_PTR pfnSetReadingDirection;
	ULONG_PTR pfnSetFlowDirection;
	ULONG_PTR pfnSetIncrementalTabStop;
	ULONG_PTR pfnSetTrimming;
	ULONG_PTR pfnSetLineSpacing;
	ULONG_PTR pfnGetTextAlignment;
	ULONG_PTR pfnGetParagraphAlignment;
	ULONG_PTR pfnGetWordWrapping;
	ULONG_PTR pfnGetReadingDirection;
	ULONG_PTR pfnGetFlowDirection;
	ULONG_PTR pfnGetIncrementalTabStop;
	ULONG_PTR pfnGetTrimming;
	ULONG_PTR pfnGetLineSpacing;
	ULONG_PTR pfnGetFontCollection;
	ULONG_PTR pfnGetFontFamilyNameLength;
	ULONG_PTR pfnGetFontFamilyName;
	ULONG_PTR pfnGetFontWeight;
	ULONG_PTR pfnGetFontStyle;
	ULONG_PTR pfnGetFontStretch;
	ULONG_PTR pfnGetFontSize;
	ULONG_PTR pfnGetLocaleNameLength;
	ULONG_PTR pfnGetLocaleName;
}IDWriteTextFormatLiteTbl, * pIDWriteTextFormatLiteTbl;

typedef struct {
	pIDWriteTextFormatLiteTbl Vtbl;
	ULONG RefCount;
}IDWriteTextFormatLite, * pIDWriteTextFormatLite;

typedef struct {
	IDWriteTextFormatLiteTbl IDWriteTextFormat;
	ULONG_PTR pfnSetMaxWidth;
	ULONG_PTR pfnSetMaxHeight;
	ULONG_PTR pfnSetFontCollection;
	ULONG_PTR pfnSetFontFamilyName;
	ULONG_PTR pfnSetFontWeight; // 0x100
	ULONG_PTR pfnSetFontStyle;
	ULONG_PTR pfnSetFontStretch;
	ULONG_PTR pfnSetFontSize;
	ULONG_PTR pfnSetUnderline;
	ULONG_PTR pfnSetStrikethrough;
	ULONG_PTR pfnSetDrawingEffect;
	ULONG_PTR pfnSetInlineObject;
	ULONG_PTR pfnSetTypography;
	ULONG_PTR pfnSetLocaleName;
	ULONG_PTR pfnGetMaxWidth;
	ULONG_PTR pfnGetMaxHeight;
	ULONG_PTR pfnGetFontCollection;
	ULONG_PTR pfnGetFontFamilyNameLength;
	ULONG_PTR pfnGetFontFamilyName;
	ULONG_PTR pfnGetFontWeight;
	ULONG_PTR pfnGetFontStyle;
	ULONG_PTR pfnGetFontStretch;
	ULONG_PTR pfnGetFontSize;
	ULONG_PTR pfnGetUnderline;
	ULONG_PTR pfnGetStrikethrough;
	ULONG_PTR pfnGetDrawingEffect;
	ULONG_PTR pfnGetInlineObject;
	ULONG_PTR pfnGetTypography;
	ULONG_PTR pfnGetLocaleNameLength;
	ULONG_PTR pfnGetLocaleName;
	ULONG_PTR pfnDraw;
	ULONG_PTR pfnGetLineMetrics;
	ULONG_PTR pfnGetMetrics;
	ULONG_PTR pfnGetOverhangMetrics;
	ULONG_PTR pfnGetClusterMetrics;
	ULONG_PTR pfnDetermineMinWidth;
	ULONG_PTR pfnHitTestPoint;
	ULONG_PTR pfnHitTestTextPosition;
	ULONG_PTR pfnHitTestTextRange;
}IDWriteTextLayoutLiteTbl, * pIDWriteTextLayoutLiteTbl;

typedef struct {
	pIDWriteTextLayoutLiteTbl Vtbl;
	ULONG RefCount;
}IDWriteTextLayoutLite, * pIDWriteTextLayoutLite;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnGetFontCollection; // tentative
	ULONG_PTR pfnGetFontCount;
	ULONG_PTR pfnGetFont;
}IDWriteFontListLiteTbl, * pIDWriteFontListLiteTbl;

typedef struct {
	pIDWriteFontListLiteTbl Vtbl;
}IDWriteFontListLite, * pIDWriteFontListLite;

typedef struct {
	IDWriteFontListLiteTbl IDWriteFontList;
	ULONG_PTR pfnGetFamilyNames; // tentative
	ULONG_PTR pfnGetFirstMatchingFont;
	ULONG_PTR pfnGetMatchingFonts;
}IDWriteFontFamilyLiteTbl, * pIDWriteFontFamilyLiteTbl;

typedef struct {
	pIDWriteFontFamilyLiteTbl Vtbl;
	ULONG RefCount;
	PCWSTR FontFamilyStr;
}IDWriteFontFamilyLite, * pIDWriteFontFamilyLite;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnCreateFontFace;
	ULONG_PTR pfnGetFaceNames;
	ULONG_PTR pfnGetFontFamily;
	ULONG_PTR pfnGetInformationalStrings;
	ULONG_PTR pfnIsSymbolFont;
	ULONG_PTR pfnGetMetrics;
	ULONG_PTR pfnGetGlyphCount; // offset 0x48
	ULONG_PTR pfnGetDesignGlyphMetrics;
	ULONG_PTR pfnGetGlyphIndices;
	ULONG_PTR pfnTryGetFontTable;
	ULONG_PTR pfnReleaseFontTable;
	ULONG_PTR pfnGetMetrics2;
	ULONG_PTR pfnGetPanose;
	ULONG_PTR pfnGetUnicodeRanges;
	ULONG_PTR pfnIsMonospacedFont;
	ULONG_PTR pfnIsColorFont;
	ULONG_PTR pfnCreateFontFace3;
	ULONG_PTR pfnEquals;
	ULONG_PTR pfnGetFontFaceReference;
	ULONG_PTR pfnGetLocality;
}IDWriteFontFaceLiteTbl, * pIDWriteFontFaceLiteTbl;

typedef struct {
	pIDWriteFontFaceLiteTbl Vtbl;
	ULONG RefCount;
	LOGFONTW lf;
	TEXTMETRICW tm;
}IDWriteFontFaceLite, * pIDWriteFontFaceLite;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnIsSymbolFont;
	ULONG_PTR pfnGetWeight;
	ULONG_PTR pfnGetStretch;
	ULONG_PTR pfnGetStyle;
	ULONG_PTR pfnGetMetrics;
	ULONG_PTR pfnGetFontFamily;
	ULONG_PTR pfnGetInformationalStrings;
	ULONG_PTR pfnGetSimulations;
	ULONG_PTR pfnGetFaceNames;
	ULONG_PTR pfnHasCharacter;
	ULONG_PTR pfnCreateFontFace;
	ULONG_PTR pfnGetMetrics2;
	ULONG_PTR pfnGetPanose;
	ULONG_PTR pfnGetUnicodeRanges;
	ULONG_PTR pfnIsMonospacedFont;
	ULONG_PTR pfnIsColorFont;
	ULONG_PTR pfnCreateFontFace3;
	ULONG_PTR pfnEquals;
	ULONG_PTR pfnGetFontFaceReference;
	ULONG_PTR pfnGetLocality;
}IDWriteFontLiteTbl, * pIDWriteFontLiteTbl;

typedef struct {
	pIDWriteFontLiteTbl Vtbl;
	ULONG RefCount;
	LOGFONTW lf;
	TEXTMETRICW tm;
}IDWriteFontLite, * pIDWriteFontLite;

typedef struct {
	pIDWriteFactoryLiteTbl Vtbl;
	ULONG RefCount;
}IDWriteFactoryLite, *pIDWriteFactoryLite;

typedef struct {
	IUnknownLite IUnknown;
	ULONG_PTR pfnSetPrivateData;
	ULONG_PTR pfnSetPrivateDataInterface;
	ULONG_PTR pfnGetPrivateData;
	ULONG_PTR pfnGetParent;
}IDXGIObjectLite, *pIDXGIObjectLite;

typedef struct {
	IDXGIObjectLite IDXGIObject;
	ULONG_PTR pfnEnumAdapters;
	ULONG_PTR pfnCreateSoftwareAdapater;
	ULONG_PTR pfnCreateSwapChain;
	ULONG_PTR pfnGetWindowAssociation;
	ULONG_PTR pfnMakeWindowAssociation;
}IDXGIFactoryLite, *pIDXGIFactoryLite;

typedef struct{
	IDXGIFactoryLite IDXGIFactory;
	ULONG_PTR EnumAdapters1;
	ULONG_PTR IsCurrent;
}IDXGIFactory1LiteTbl, *pIDXGIFactory1LiteTbl;

typedef struct {
	pIDXGIFactory1LiteTbl Vtbl;
}IDXGIFactory1Lite, *pIDXGIFactory1Lite;

typedef struct {
	IDXGIObjectLite IDXGIObject;
    ULONG_PTR pfnEnumOutputs;
	ULONG_PTR pfnGetDesc;
	ULONG_PTR pfnCheckInterfaceSupport;
}IDXGIAdapterLiteTbl, *pIDXGIAdapterLiteTbl;

typedef struct {
	pIDXGIAdapterLiteTbl Vtbl;
}IDXGIAdapterLite, *pIDXGIAdapterLite;