From 3ff6edeafd41f66818bba010cf7a889fbce05851 Mon Sep 17 00:00:00 2001
From: Thomas Linder Puls <thomas.linder.puls@pdc.com>
Date: Wed, 23 Mar 2022 15:34:59 +0100
Subject: [PATCH] dwrite.idl [out] parameters

---
 include/dwrite.idl | 238 ++++++++++++++++++++++-----------------------
 1 file changed, 119 insertions(+), 119 deletions(-)

diff --git a/include/dwrite.idl b/include/dwrite.idl
index 64cb5ee4889..f24feb06875 100644
--- a/include/dwrite.idl
+++ b/include/dwrite.idl
@@ -570,10 +570,10 @@ uuid(6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0)
 interface IDWriteFontFileStream : IUnknown
 {
     HRESULT ReadFileFragment(
-        void const **fragment_start,
+        [out] void const **fragment_start,
         UINT64 offset,
         UINT64 fragment_size,
-        void **fragment_context);
+        [out] void **fragment_context);
 
     void ReleaseFileFragment(void *fragment_context);
     HRESULT GetFileSize(UINT64 *size);
@@ -590,7 +590,7 @@ interface IDWriteFontFileLoader : IUnknown
     HRESULT CreateStreamFromKey(
         void const *key,
         UINT32 key_size,
-        IDWriteFontFileStream **stream);
+        [out] IDWriteFontFileStream **stream);
 }
 
 [
@@ -600,9 +600,9 @@ uuid(b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2)
 ]
 interface IDWriteLocalFontFileLoader : IDWriteFontFileLoader
 {
-    HRESULT GetFilePathLengthFromKey(void const *key, UINT32 key_size, UINT32 *length);
-    HRESULT GetFilePathFromKey(void const *key, UINT32 key_size, WCHAR *path, UINT32 length);
-    HRESULT GetLastWriteTimeFromKey(void const *key, UINT32 key_size, FILETIME *writetime);
+    HRESULT GetFilePathLengthFromKey(void const *key, UINT32 key_size, [out] UINT32 *length);
+    HRESULT GetFilePathFromKey(void const *key, UINT32 key_size, [out] WCHAR *path, UINT32 length);
+    HRESULT GetLastWriteTimeFromKey(void const *key, UINT32 key_size, [out] FILETIME *writetime);
 }
 
 [
@@ -613,16 +613,16 @@ uuid(739d886a-cef5-47dc-8769-1a8b41bebbb0)
 interface IDWriteFontFile : IUnknown
 {
     HRESULT GetReferenceKey(
-        void const **key,
-        UINT32 *key_size);
+        [out] void const **key,
+        [out] UINT32 *key_size);
 
-    HRESULT GetLoader(IDWriteFontFileLoader **loader);
+    HRESULT GetLoader([out] IDWriteFontFileLoader **loader);
 
     HRESULT Analyze(
-        BOOL *is_supported_fonttype,
-        DWRITE_FONT_FILE_TYPE *file_type,
-        DWRITE_FONT_FACE_TYPE *face_type,
-        UINT32 *faces_num);
+        [out] BOOL *is_supported_fonttype,
+        [out] DWRITE_FONT_FILE_TYPE *file_type,
+        [out] DWRITE_FONT_FACE_TYPE *face_type,
+        [out] UINT32 *faces_num);
 }
 
 [
@@ -633,7 +633,7 @@ uuid(72755049-5ff7-435d-8348-4be97cfa6c7c)
 interface IDWriteFontFileEnumerator : IUnknown
 {
     HRESULT MoveNext(BOOL *has_current_file);
-    HRESULT GetCurrentFontFile(IDWriteFontFile **font_file);
+    HRESULT GetCurrentFontFile([out] IDWriteFontFile **font_file);
 }
 
 [
@@ -647,7 +647,7 @@ interface IDWriteFontCollectionLoader : IUnknown
         IDWriteFactory* factory,
         void const* key,
         UINT32 key_size,
-        IDWriteFontFileEnumerator **enumerator);
+        [out] IDWriteFontFileEnumerator **enumerator);
 }
 
 [
@@ -692,30 +692,30 @@ uuid(5f49804d-7024-4d43-bfa9-d25984f53849)
 interface IDWriteFontFace : IUnknown
 {
     DWRITE_FONT_FACE_TYPE GetType();
-    HRESULT GetFiles(UINT32 *number_of_files, IDWriteFontFile **fontfiles);
+    HRESULT GetFiles(UINT32 *number_of_files, [out] IDWriteFontFile **fontfiles);
     UINT32 GetIndex();
     DWRITE_FONT_SIMULATIONS GetSimulations();
     BOOL IsSymbolFont();
-    void GetMetrics(DWRITE_FONT_METRICS *metrics);
+    void GetMetrics([out] DWRITE_FONT_METRICS *metrics);
     UINT16 GetGlyphCount();
 
     HRESULT GetDesignGlyphMetrics(
         UINT16 const *glyph_indices,
         UINT32 glyph_count,
-        DWRITE_GLYPH_METRICS *metrics,
+        [out] DWRITE_GLYPH_METRICS *metrics,
         [defaultvalue(FALSE)] BOOL is_sideways);
 
     HRESULT GetGlyphIndices(
         UINT32 const *codepoints,
         UINT32 count,
-        UINT16 *glyph_indices);
+        [out] UINT16 *glyph_indices);
 
     HRESULT TryGetFontTable(
         UINT32 table_tag,
-        const void **table_data,
-        UINT32 *table_size,
-        void **context,
-        BOOL *exists);
+        [out] const void **table_data,
+        [out] UINT32 *table_size,
+        [out] void **context,
+        [out] BOOL *exists);
 
     void ReleaseFontTable(void *table_context);
 
@@ -734,13 +734,13 @@ interface IDWriteFontFace : IUnknown
         FLOAT pixels_per_dip,
         DWRITE_MEASURING_MODE mode,
         IDWriteRenderingParams* params,
-        DWRITE_RENDERING_MODE* rendering_mode);
+        [out] DWRITE_RENDERING_MODE* rendering_mode);
 
     HRESULT GetGdiCompatibleMetrics(
         FLOAT emSize,
         FLOAT pixels_per_dip,
         DWRITE_MATRIX const *transform,
-        DWRITE_FONT_METRICS *metrics);
+        [out] DWRITE_FONT_METRICS *metrics);
 
     HRESULT GetGdiCompatibleGlyphMetrics(
         FLOAT emSize,
@@ -749,7 +749,7 @@ interface IDWriteFontFace : IUnknown
         BOOL use_gdi_natural,
         UINT16 const *glyph_indices,
         UINT32 glyph_count,
-        DWRITE_GLYPH_METRICS *metrics,
+        [out] DWRITE_GLYPH_METRICS *metrics,
         [defaultvalue(FALSE)] BOOL is_sideways);
 }
 
@@ -760,22 +760,22 @@ uuid(acd16696-8c14-4f5d-877e-fe3fc1d32737)
 ]
 interface IDWriteFont : IUnknown
 {
-    HRESULT GetFontFamily(IDWriteFontFamily **family);
+    HRESULT GetFontFamily([out] IDWriteFontFamily **family);
     DWRITE_FONT_WEIGHT GetWeight();
     DWRITE_FONT_STRETCH GetStretch();
     DWRITE_FONT_STYLE GetStyle();
     BOOL IsSymbolFont();
 
-    HRESULT GetFaceNames(IDWriteLocalizedStrings **names);
+    HRESULT GetFaceNames([out] IDWriteLocalizedStrings **names);
     HRESULT GetInformationalStrings(
         DWRITE_INFORMATIONAL_STRING_ID stringid,
-        IDWriteLocalizedStrings **strings,
+        [out] IDWriteLocalizedStrings **strings,
         BOOL *exists);
 
     DWRITE_FONT_SIMULATIONS GetSimulations();
     void GetMetrics(DWRITE_FONT_METRICS *metrics);
     HRESULT HasCharacter(UINT32 value, BOOL *exists);
-    HRESULT CreateFontFace(IDWriteFontFace **face);
+    HRESULT CreateFontFace([out] IDWriteFontFace **face);
 }
 
 [
@@ -785,9 +785,9 @@ uuid(1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb)
 ]
 interface IDWriteFontList : IUnknown
 {
-    HRESULT GetFontCollection(IDWriteFontCollection **collection);
+    HRESULT GetFontCollection([out] IDWriteFontCollection **collection);
     UINT32 GetFontCount();
-    HRESULT GetFont(UINT32 index, IDWriteFont **font);
+    HRESULT GetFont(UINT32 index, [out] IDWriteFont **font);
 }
 
 [
@@ -797,19 +797,19 @@ uuid(da20d8ef-812a-4c43-9802-62ec4abd7add)
 ]
 interface IDWriteFontFamily : IDWriteFontList
 {
-    HRESULT GetFamilyNames(IDWriteLocalizedStrings **names);
+    HRESULT GetFamilyNames([out] IDWriteLocalizedStrings **names);
 
     HRESULT GetFirstMatchingFont(
         DWRITE_FONT_WEIGHT weight,
         DWRITE_FONT_STRETCH stretch,
         DWRITE_FONT_STYLE style,
-        IDWriteFont **font);
+        [out] IDWriteFont **font);
 
     HRESULT GetMatchingFonts(
         DWRITE_FONT_WEIGHT weight,
         DWRITE_FONT_STRETCH stretch,
         DWRITE_FONT_STYLE style,
-        IDWriteFontList **fonts);
+        [out] IDWriteFontList **fonts);
 }
 
 [
@@ -820,9 +820,9 @@ uuid(a84cee02-3eea-4eee-a827-87c1a02a0fcc)
 interface IDWriteFontCollection : IUnknown
 {
     UINT32 GetFontFamilyCount();
-    HRESULT GetFontFamily(UINT32 index, IDWriteFontFamily **family);
+    HRESULT GetFontFamily(UINT32 index, [out] IDWriteFontFamily **family);
     HRESULT FindFamilyName(WCHAR const *name, UINT32 *index, BOOL *exists);
-    HRESULT GetFontFromFontFace(IDWriteFontFace *face, IDWriteFont **font);
+    HRESULT GetFontFromFontFace(IDWriteFontFace *face, [out] IDWriteFont **font);
 }
 
 [
@@ -904,8 +904,8 @@ interface IDWriteInlineObject : IUnknown
     HRESULT GetMetrics(DWRITE_INLINE_OBJECT_METRICS *metrics);
     HRESULT GetOverhangMetrics(DWRITE_OVERHANG_METRICS *overhangs);
     HRESULT GetBreakConditions(
-        DWRITE_BREAK_CONDITION* condition_before,
-        DWRITE_BREAK_CONDITION* condition_after);
+        [out] DWRITE_BREAK_CONDITION* condition_before,
+        [out] DWRITE_BREAK_CONDITION* condition_after);
 }
 
 [
@@ -929,22 +929,22 @@ interface IDWriteTextFormat : IUnknown
     DWRITE_READING_DIRECTION GetReadingDirection();
     DWRITE_FLOW_DIRECTION GetFlowDirection();
     FLOAT GetIncrementalTabStop();
-    HRESULT GetTrimming(DWRITE_TRIMMING *options, IDWriteInlineObject **trimming_sign);
+    HRESULT GetTrimming(DWRITE_TRIMMING *options, [out] IDWriteInlineObject **trimming_sign);
 
     HRESULT GetLineSpacing(
-        DWRITE_LINE_SPACING_METHOD *method,
-        FLOAT *spacing,
-        FLOAT *baseline);
+        [out] DWRITE_LINE_SPACING_METHOD *method,
+        [out] FLOAT *spacing,
+        [out] FLOAT *baseline);
 
-    HRESULT GetFontCollection(IDWriteFontCollection **collection);
+    HRESULT GetFontCollection([out] IDWriteFontCollection **collection);
     UINT32 GetFontFamilyNameLength();
-    HRESULT GetFontFamilyName(WCHAR *name, UINT32 size);
+    HRESULT GetFontFamilyName([out] WCHAR *name, UINT32 size);
     DWRITE_FONT_WEIGHT GetFontWeight();
     DWRITE_FONT_STYLE GetFontStyle();
     DWRITE_FONT_STRETCH GetFontStretch();
     FLOAT GetFontSize();
     UINT32 GetLocaleNameLength();
-    HRESULT GetLocaleName(WCHAR *name, UINT32 size);
+    HRESULT GetLocaleName([out] WCHAR *name, UINT32 size);
 }
 
 [
@@ -1014,15 +1014,15 @@ uuid(1edd9491-9853-4299-898f-6432983b6f3a)
 ]
 interface IDWriteGdiInterop : IUnknown
 {
-    HRESULT CreateFontFromLOGFONT(LOGFONTW const *logfont, IDWriteFont **font);
+    HRESULT CreateFontFromLOGFONT(LOGFONTW const *logfont, [out] IDWriteFont **font);
     HRESULT ConvertFontToLOGFONT(
         IDWriteFont* font,
-        LOGFONTW* logfont,
+        [out] LOGFONTW* logfont,
         BOOL *is_systemfont);
 
     HRESULT ConvertFontFaceToLOGFONT(IDWriteFontFace* font, LOGFONTW* logfont);
-    HRESULT CreateFontFaceFromHdc(HDC hdc, IDWriteFontFace **fontface);
-    HRESULT CreateBitmapRenderTarget(HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget **target);
+    HRESULT CreateFontFaceFromHdc(HDC hdc, [out] IDWriteFontFace **fontface);
+    HRESULT CreateBitmapRenderTarget(HDC hdc, UINT32 width, UINT32 height, [out] IDWriteBitmapRenderTarget **target);
 }
 
 [
@@ -1051,75 +1051,75 @@ interface IDWriteTextLayout : IDWriteTextFormat
     FLOAT GetMaxHeight();
     HRESULT GetFontCollection(
         UINT32 pos,
-        IDWriteFontCollection** collection,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] IDWriteFontCollection** collection,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetFontFamilyNameLength(
         UINT32 pos,
-        UINT32* len,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] UINT32* len,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetFontFamilyName(
         UINT32 position,
-        WCHAR* name,
+        [out] WCHAR* name,
         UINT32 name_size,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetFontWeight(
         UINT32 position,
-        DWRITE_FONT_WEIGHT *weight,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] DWRITE_FONT_WEIGHT *weight,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetFontStyle(
         UINT32 currentPosition,
-        DWRITE_FONT_STYLE *style,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] DWRITE_FONT_STYLE *style,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetFontStretch(
         UINT32 position,
-        DWRITE_FONT_STRETCH *stretch,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] DWRITE_FONT_STRETCH *stretch,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetFontSize(
         UINT32 position,
-        FLOAT *size,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] FLOAT *size,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetUnderline(
         UINT32 position,
-        BOOL *has_underline,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] BOOL *has_underline,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetStrikethrough(
         UINT32 position,
-        BOOL *has_strikethrough,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] BOOL *has_strikethrough,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetDrawingEffect(
         UINT32 position,
-        IUnknown **effect,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] IUnknown **effect,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetInlineObject(
         UINT32 position,
-        IDWriteInlineObject **object,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] IDWriteInlineObject **object,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetTypography(
         UINT32 position,
-        IDWriteTypography** typography,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] IDWriteTypography** typography,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetLocaleNameLength(
         UINT32 position,
-        UINT32* length,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out] UINT32* length,
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT GetLocaleName(
         UINT32 position,
-        WCHAR* name,
+        [out] WCHAR* name,
         UINT32 name_size,
-        [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
+        [out, optional] DWRITE_TEXT_RANGE *range);
 
     HRESULT Draw(
         void *context,
@@ -1130,38 +1130,38 @@ interface IDWriteTextLayout : IDWriteTextFormat
     HRESULT GetLineMetrics(
         DWRITE_LINE_METRICS *metrics,
         UINT32 max_count,
-        UINT32 *actual_count);
+        [out] UINT32 *actual_count);
 
-    HRESULT GetMetrics(DWRITE_TEXT_METRICS *metrics);
-    HRESULT GetOverhangMetrics(DWRITE_OVERHANG_METRICS *overhangs);
+    HRESULT GetMetrics([out] DWRITE_TEXT_METRICS *metrics);
+    HRESULT GetOverhangMetrics([out] DWRITE_OVERHANG_METRICS *overhangs);
     HRESULT GetClusterMetrics(
-        DWRITE_CLUSTER_METRICS *metrics,
+        [out] DWRITE_CLUSTER_METRICS *metrics,
         UINT32 max_count,
-        UINT32* act_count);
+        [out] UINT32* act_count);
 
     HRESULT DetermineMinWidth(FLOAT* min_width);
     HRESULT HitTestPoint(
         FLOAT pointX,
         FLOAT pointY,
-        BOOL* is_trailinghit,
-        BOOL* is_inside,
-        DWRITE_HIT_TEST_METRICS *metrics);
+        [out] BOOL* is_trailinghit,
+        [out] BOOL* is_inside,
+        [out] DWRITE_HIT_TEST_METRICS *metrics);
 
     HRESULT HitTestTextPosition(
         UINT32 textPosition,
         BOOL is_trailinghit,
-        FLOAT* pointX,
-        FLOAT* pointY,
-        DWRITE_HIT_TEST_METRICS *metrics);
+        [out] FLOAT* pointX,
+        [out] FLOAT* pointY,
+        [out] DWRITE_HIT_TEST_METRICS *metrics);
 
     HRESULT HitTestTextRange(
         UINT32 textPosition,
         UINT32 textLength,
         FLOAT originX,
         FLOAT originY,
-        DWRITE_HIT_TEST_METRICS *metrics,
+        [out] DWRITE_HIT_TEST_METRICS *metrics,
         UINT32 max_metricscount,
-        UINT32* actual_metricscount);
+        [out] UINT32* actual_metricscount);
 }
 
 [
@@ -1182,24 +1182,24 @@ interface IDWriteTextAnalysisSource : IUnknown
 {
     HRESULT GetTextAtPosition(
         UINT32 position,
-        WCHAR const** text,
-        UINT32* text_len);
+        [out] WCHAR const** text,
+        [out] UINT32* text_len);
 
     HRESULT GetTextBeforePosition(
         UINT32 position,
-        WCHAR const** text,
-        UINT32* text_len);
+        [out] WCHAR const** text,
+        [out] UINT32* text_len);
 
     DWRITE_READING_DIRECTION GetParagraphReadingDirection();
     HRESULT GetLocaleName(
         UINT32 position,
         UINT32* text_len,
-        WCHAR const** locale);
+        [out] WCHAR const** locale);
 
     HRESULT GetNumberSubstitution(
         UINT32 position,
         UINT32* text_len,
-        IDWriteNumberSubstitution **substitution);
+        [out] IDWriteNumberSubstitution **substitution);
 }
 
 [
@@ -1275,11 +1275,11 @@ interface IDWriteTextAnalyzer : IUnknown
         UINT32 const* feature_range_len,
         UINT32 feature_ranges,
         UINT32 max_glyph_count,
-        UINT16* clustermap,
-        DWRITE_SHAPING_TEXT_PROPERTIES* text_props,
-        UINT16* glyph_indices,
-        DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props,
-        UINT32* actual_glyph_count);
+        [out] UINT16* clustermap,
+        [out] DWRITE_SHAPING_TEXT_PROPERTIES* text_props,
+        [out] UINT16* glyph_indices,
+        [out] DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props,
+        [out] UINT32* actual_glyph_count);
 
     HRESULT GetGlyphPlacements(
         WCHAR const* text,
@@ -1348,14 +1348,14 @@ uuid(b859ee5a-d838-4b5b-a2e8-1adc7d93db48)
 ]
 interface IDWriteFactory : IUnknown
 {
-    HRESULT GetSystemFontCollection(IDWriteFontCollection **collection,
+    HRESULT GetSystemFontCollection([out] IDWriteFontCollection **collection,
                                     [defaultvalue(FALSE)] BOOL check_for_updates);
 
     HRESULT CreateCustomFontCollection(
         IDWriteFontCollectionLoader *loader,
         void const *key,
         UINT32 key_size,
-        IDWriteFontCollection **collection);
+        [out] IDWriteFontCollection **collection);
 
     HRESULT RegisterFontCollectionLoader(IDWriteFontCollectionLoader *loader);
 
@@ -1364,13 +1364,13 @@ interface IDWriteFactory : IUnknown
     HRESULT CreateFontFileReference(
         WCHAR const *path,
         FILETIME const *writetime,
-        IDWriteFontFile **font_file);
+        [out] IDWriteFontFile **font_file);
 
     HRESULT CreateCustomFontFileReference(
         void const *reference_key,
         UINT32 key_size,
         IDWriteFontFileLoader *loader,
-        IDWriteFontFile **font_file);
+        [out] IDWriteFontFile **font_file);
 
     HRESULT CreateFontFace(
         DWRITE_FONT_FACE_TYPE facetype,
@@ -1378,13 +1378,13 @@ interface IDWriteFactory : IUnknown
         IDWriteFontFile* const* font_files,
         UINT32 index,
         DWRITE_FONT_SIMULATIONS sim_flags,
-        IDWriteFontFace **font_face);
+        [out] IDWriteFontFace **font_face);
 
-    HRESULT CreateRenderingParams(IDWriteRenderingParams **params);
+    HRESULT CreateRenderingParams([out] IDWriteRenderingParams **params);
 
     HRESULT CreateMonitorRenderingParams(
         HMONITOR monitor,
-        IDWriteRenderingParams **params);
+        [out] IDWriteRenderingParams **params);
 
     HRESULT CreateCustomRenderingParams(
         FLOAT gamma,
@@ -1392,7 +1392,7 @@ interface IDWriteFactory : IUnknown
         FLOAT cleartype_level,
         DWRITE_PIXEL_GEOMETRY geometry,
         DWRITE_RENDERING_MODE mode,
-        IDWriteRenderingParams **params);
+        [out] IDWriteRenderingParams **params);
 
     HRESULT RegisterFontFileLoader(IDWriteFontFileLoader *loader);
 
@@ -1406,11 +1406,11 @@ interface IDWriteFactory : IUnknown
         DWRITE_FONT_STRETCH stretch,
         FLOAT size,
         WCHAR const *locale,
-        IDWriteTextFormat **format);
+        [out] IDWriteTextFormat **format);
 
-    HRESULT CreateTypography(IDWriteTypography **typography);
+    HRESULT CreateTypography([out] IDWriteTypography **typography);
 
-    HRESULT GetGdiInterop(IDWriteGdiInterop **gdi_interop);
+    HRESULT GetGdiInterop([out] IDWriteGdiInterop **gdi_interop);
 
     HRESULT CreateTextLayout(
         WCHAR const* string,
@@ -1418,7 +1418,7 @@ interface IDWriteFactory : IUnknown
         IDWriteTextFormat *format,
         FLOAT max_width,
         FLOAT max_height,
-        IDWriteTextLayout **layout);
+        [out] IDWriteTextLayout **layout);
 
     HRESULT CreateGdiCompatibleTextLayout(
         WCHAR const* string,
@@ -1429,19 +1429,19 @@ interface IDWriteFactory : IUnknown
         FLOAT pixels_per_dip,
         DWRITE_MATRIX const* transform,
         BOOL use_gdi_natural,
-        IDWriteTextLayout **layout);
+        [out] IDWriteTextLayout **layout);
 
     HRESULT CreateEllipsisTrimmingSign(
         IDWriteTextFormat *format,
-        IDWriteInlineObject **trimming_sign);
+        [out] IDWriteInlineObject **trimming_sign);
 
-    HRESULT CreateTextAnalyzer(IDWriteTextAnalyzer **analyzer);
+    HRESULT CreateTextAnalyzer([out] IDWriteTextAnalyzer **analyzer);
 
     HRESULT CreateNumberSubstitution(
         DWRITE_NUMBER_SUBSTITUTION_METHOD method,
         WCHAR const* locale,
         BOOL ignore_user_override,
-        IDWriteNumberSubstitution **substitution);
+        [out] IDWriteNumberSubstitution **substitution);
 
     HRESULT CreateGlyphRunAnalysis(
         DWRITE_GLYPH_RUN const *glyph_run,
@@ -1451,7 +1451,7 @@ interface IDWriteFactory : IUnknown
         DWRITE_MEASURING_MODE measuring_mode,
         FLOAT baseline_x,
         FLOAT baseline_y,
-        IDWriteGlyphRunAnalysis **analysis);
+        [out] IDWriteGlyphRunAnalysis **analysis);
 }
 
 cpp_quote("HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE,REFIID,IUnknown**);")
-- 
2.31.0.vfs.0.1

