/*
* Copyright 2012 Nikolay Sivov for CodeWeavers
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
import "unknwn.idl";
import "dcommon.h";
interface IDWriteFactory;
interface IDWriteFontCollection;
interface IDWriteFontFamily;
interface IDWriteFontFace;
interface IDWriteInlineObject;
interface ID2D1SimplifiedGeometrySink;
cpp_quote("#ifndef _WINDEF_")
/* already defined in windef.h but needed for WIDL */
cpp_quote("#endif /* _WINDEF_ */")
cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
cpp_quote("#undef GetGlyphIndices")
cpp_quote("#endif")
{
{
{
{
DWRITE_FONT_WEIGHT_THIN = 100,
DWRITE_FONT_WEIGHT_LIGHT = 300,
DWRITE_FONT_WEIGHT_NORMAL = 400,
DWRITE_FONT_WEIGHT_REGULAR = 400,
DWRITE_FONT_WEIGHT_MEDIUM = 500,
DWRITE_FONT_WEIGHT_DEMI_BOLD = 600,
DWRITE_FONT_WEIGHT_SEMI_BOLD = 600,
DWRITE_FONT_WEIGHT_BOLD = 700,
DWRITE_FONT_WEIGHT_BLACK = 900,
DWRITE_FONT_WEIGHT_HEAVY = 900,
{
typedef enum DWRITE_FONT_STYLE
{
{
{
DWRITE_FONT_SIMULATIONS_NONE = 0x0000,
DWRITE_FONT_SIMULATIONS_BOLD = 0x0001,
DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
UINT16 const* glyphIndices;
FLOAT const* glyphAdvances;
DWRITE_GLYPH_OFFSET const* glyphOffsets;
{
WCHAR const* localeName;
UINT16 const* clusterMap;
{
WCHAR const* localeName;
{
WCHAR const* localeName;
{
{
{
{
{
{
{
{
{
{
{
{
{
[
]
interface IDWriteFontFileStream : IUnknown
{
void const **fragment_start,
void **fragment_context);
void ReleaseFileFragment(void *fragment_context);
}
[
]
interface IDWriteFontFileLoader : IUnknown
{
void const *key,
}
[
]
interface IDWriteFontFile : IUnknown
{
void const **key,
}
[
]
interface IDWriteFontFileEnumerator : IUnknown
{
};
[
]
interface IDWriteFontCollectionLoader : IUnknown
{
void const* key,
}
[
]
interface IDWriteLocalizedStrings : IUnknown
{
WCHAR const *locale_name,
}
[
]
interface IDWriteRenderingParams : IUnknown
{
}
[
]
interface IDWriteFontFace : IUnknown
{
BOOL IsSymbolFont();
UINT16 const *glyph_indices,
UINT32 const *codepoints,
const void **table_data,
void **context,
void ReleaseFontTable(void *table_context);
UINT16 const *glyph_indices,
FLOAT const* glyph_advances,
DWRITE_GLYPH_OFFSET const *glyph_offsets,
DWRITE_MATRIX const *transform,
DWRITE_MATRIX const *transform,
UINT16 const *glyph_indices,
}
[
]
interface IDWriteFont : IUnknown
{
BOOL IsSymbolFont();
}
[
]
interface IDWriteFontList : IUnknown
{
}
[
]
interface IDWriteFontFamily : IDWriteFontList
{
IDWriteFont **font);
IDWriteFontList **fonts);
}
[
]
interface IDWriteFontCollection : IUnknown
{
}
[
]
interface IDWritePixelSnapping : IUnknown
{
void *client_drawingcontext,
void *client_drawingcontext,
void *client_drawingcontext,
}
[
]
interface IDWriteTextRenderer : IDWritePixelSnapping
{
void* client_drawingcontext,
DWRITE_GLYPH_RUN const *glyph_run,
void *client_drawingcontext,
DWRITE_UNDERLINE const* underline,
void *client_drawingcontext,
DWRITE_STRIKETHROUGH const* strikethrough,
void *client_drawingcontext,
}
[
]
interface IDWriteInlineObject : IUnknown
{
void* client_drawingontext,
}
[
]
interface IDWriteTextFormat : IUnknown
{
FLOAT GetFontSize();
}
[
]
interface IDWriteTypography : IUnknown
{
}
[
]
interface IDWriteBitmapRenderTarget : IUnknown
{
DWRITE_GLYPH_RUN const* glyph_run,
HDC GetMemoryDC();
}
cpp_quote("#ifndef _WINGDI_")
/* already defined in wingdi.h but needed for WIDL */
{
cpp_quote("#endif /* _WINGDI_ */")
[
]
interface IDWriteGdiInterop : IUnknown
{
HRESULT CreateBitmapRenderTarget(HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget **target);
}
[
]
interface IDWriteTextLayout : IDWriteTextFormat
{
FLOAT GetMaxWidth();
void *context,
}
[
]
interface IDWriteNumberSubstitution : IUnknown
{
}
[
]
interface IDWriteTextAnalysisSource : IUnknown
{
}
[
]
interface IDWriteTextAnalysisSink : IUnknown
{
DWRITE_SCRIPT_ANALYSIS const* scriptanalysis);
DWRITE_LINE_BREAKPOINT const* breakpoints);
}
[
]
interface IDWriteTextAnalyzer : IUnknown
{
DWRITE_SCRIPT_ANALYSIS const* analysis,
DWRITE_TYPOGRAPHIC_FEATURES const** features,
UINT32 const* feature_range_len,
UINT16 const* clustermap,
UINT16 const* glyph_indices,
DWRITE_SCRIPT_ANALYSIS const* analysis,
DWRITE_TYPOGRAPHIC_FEATURES const** features,
UINT32 const* feature_range_len,
UINT16 const* clustermap,
UINT16 const* glyph_indices,
DWRITE_MATRIX const* transform,
DWRITE_SCRIPT_ANALYSIS const* analysis,
DWRITE_TYPOGRAPHIC_FEATURES const** features,
UINT32 const* feature_range_lengths,
}
[
]
interface IDWriteGlyphRunAnalysis : IUnknown
{
HRESULT CreateAlphaTexture(DWRITE_TEXTURE_TYPE type, RECT const* bounds, BYTE* alphaValues, UINT32 bufferSize);
}
[
]
interface IDWriteFactory : IUnknown
{
void const *key,
void const *reference_key,
IDWriteFontFile* const* font_files,
WCHAR const* family_name,
DWRITE_MATRIX const* transform,
DWRITE_GLYPH_RUN const *glyph_run,
DWRITE_MATRIX const* transform,
}
cpp_quote("HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE,REFIID,IUnknown**);")
/* error codes */
cpp_quote("#define FACILITY_DWRITE 0x898")
cpp_quote("#define DWRITE_ERR_BASE 0x5000")
cpp_quote("#define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code))")
cpp_quote("#define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code)")
cpp_quote("#define DWRITE_E_FILEFORMAT MAKE_DWRITE_HR_ERR(0x0)")
cpp_quote("#define DWRITE_E_UNEXPECTED MAKE_DWRITE_HR_ERR(0x1)")
cpp_quote("#define DWRITE_E_NOFONT MAKE_DWRITE_HR_ERR(0x2)")
cpp_quote("#define DWRITE_E_FILENOTFOUND MAKE_DWRITE_HR_ERR(0x3)")
cpp_quote("#define DWRITE_E_FILEACCESS MAKE_DWRITE_HR_ERR(0x4)")
cpp_quote("#define DWRITE_E_FONTCOLLECTIONOBSOLETE MAKE_DWRITE_HR_ERR(0x5)")
cpp_quote("#define DWRITE_E_ALREADYREGISTERED MAKE_DWRITE_HR_ERR(0x6)")