Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -185,11 +185,11 @@ private static void AnalyzeInterface(

if (srcCtx.VtableIndexData.Direction is MarshalDirection.ManagedToUnmanaged or MarshalDirection.Bidirectional)
{
(_, managedToNativeDiags) = VirtualMethodPointerStubGenerator.GenerateManagedToNativeStub(srcCtx, ComInterfaceGeneratorHelpers.GetGeneratorResolver);
(_, managedToNativeDiags) = VirtualMethodPointerStubGenerator.GenerateManagedToNativeStub(srcCtx, static (env, dir) => new ByValueContentsMarshalKindValidator(ComInterfaceGeneratorHelpers.GetGeneratorResolver(env, dir)));
}
if (srcCtx.VtableIndexData.Direction is MarshalDirection.UnmanagedToManaged or MarshalDirection.Bidirectional)
{
(_, nativeToManagedDiags) = VirtualMethodPointerStubGenerator.GenerateNativeToManagedStub(srcCtx, ComInterfaceGeneratorHelpers.GetGeneratorResolver);
(_, nativeToManagedDiags) = VirtualMethodPointerStubGenerator.GenerateNativeToManagedStub(srcCtx, static (env, dir) => new ByValueContentsMarshalKindValidator(ComInterfaceGeneratorHelpers.GetGeneratorResolver(env, dir)));
}

// Deduplicate diagnostics reported for both directions (matching original generator behavior)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ public override void Initialize(AnalysisContext context)
new CodeEmitOptions(SkipInit: true),
typeof(ConvertComImportToGeneratedComInterfaceAnalyzer).Assembly);

var managedToUnmanagedFactory = ComInterfaceGeneratorHelpers.GetGeneratorResolver(env.EnvironmentFlags, MarshalDirection.ManagedToUnmanaged);
var unmanagedToManagedFactory = ComInterfaceGeneratorHelpers.GetGeneratorResolver(env.EnvironmentFlags, MarshalDirection.UnmanagedToManaged);
var managedToUnmanagedFactory = new ByValueContentsMarshalKindValidator(ComInterfaceGeneratorHelpers.GetGeneratorResolver(env.EnvironmentFlags, MarshalDirection.ManagedToUnmanaged));
var unmanagedToManagedFactory = new ByValueContentsMarshalKindValidator(ComInterfaceGeneratorHelpers.GetGeneratorResolver(env.EnvironmentFlags, MarshalDirection.UnmanagedToManaged));

mayRequireAdditionalWork = diagnostics.Diagnostics.Any();
bool anyExplicitlyUnsupportedInfo = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,14 @@ private static void AnalyzeMethod(SymbolAnalysisContext context, MethodDeclarati

if (stubContext.VtableIndexData.Direction is MarshalDirection.ManagedToUnmanaged or MarshalDirection.Bidirectional)
{
var (_, diagnostics) = VirtualMethodPointerStubGenerator.GenerateManagedToNativeStub(stubContext, VtableIndexStubGeneratorHelpers.GetGeneratorResolver);
var (_, diagnostics) = VirtualMethodPointerStubGenerator.GenerateManagedToNativeStub(stubContext, static (env, dir) => new ByValueContentsMarshalKindValidator(VtableIndexStubGeneratorHelpers.GetGeneratorResolver(env, dir)));
foreach (DiagnosticInfo diag in diagnostics)
context.ReportDiagnostic(diag.ToDiagnostic());
}

if (stubContext.VtableIndexData.Direction is MarshalDirection.UnmanagedToManaged or MarshalDirection.Bidirectional)
{
var (_, diagnostics) = VirtualMethodPointerStubGenerator.GenerateNativeToManagedStub(stubContext, VtableIndexStubGeneratorHelpers.GetGeneratorResolver);
var (_, diagnostics) = VirtualMethodPointerStubGenerator.GenerateNativeToManagedStub(stubContext, static (env, dir) => new ByValueContentsMarshalKindValidator(VtableIndexStubGeneratorHelpers.GetGeneratorResolver(env, dir)));
foreach (DiagnosticInfo diag in diagnostics)
context.ReportDiagnostic(diag.ToDiagnostic());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -868,9 +868,6 @@
<value>The configuration of 'StringMarshalling' and 'StringMarshallingCustomType' on interface '{0}' is invalid. {1}</value>
<comment>{1} is a message containing additional details about what is not valid</comment>
</data>
<data name="InOutAttributes" xml:space="preserve">
<value>[In] and [Out] attributes</value>
</data>
<data name="OutAttributeNotSupportedOnByValueParameters" xml:space="preserve">
<value>The '[Out]' attribute is only supported on array parameters. Consider using 'out' or 'ref' keywords to make the parameter mutable.</value>
</data>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Atributy „[In]“ a „[Out]“ jsou podporovány pouze u parametrů pole. Zvažte použití klíčového slova „ref“ k nastavení měnitelného parametru.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">atributy [In] a [Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Objekty zařazené z VARIANT jako parametry in ve voláních nespravovaných na spravované nebudou šířit zpět aktualizovaný výsledek, a to ani v případě, že VARIANT je varianta VT_BYREF. K šíření aktualizované hodnoty zpět k volajícímu použijte místo parametru in parametr ref.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Die [In]- und [Out]-Attribute werden nur für Arrayparameter unterstützt. Erwägen Sie die Verwendung des Schlüsselworts "ref", damit der Parameter geändert werden kann.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">[In]- und [Out]-Attribute</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Objekte, die aus VARIANTEN als in-Parameter in nicht verwalteten Aufrufen gemarshallt werden, werden nicht an das aktualisierte Ergebnis verteilt, auch wenn VARIANTE eine VT_BYREF-Variante ist. Verwenden Sie einen ref-Parameter anstelle eines in-Parameters, um den aktualisierten Wert wieder an den Aufrufer zu übergeben.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Los atributos "[In]" y "[Out]" solo se admiten en parámetros de matriz. Considere la posibilidad de usar la palabra clave "ref" para hacer que el parámetro sea mutable.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">Atributos [In] y [Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Los objetos serializados a partir de VARIANTES como parámetros 'in' en llamadas no administradas a administradas no propagarán el resultado actualizado, incluso si VARIANTE es una variante VT_BYREF. Use un parámetro 'ref' en lugar de un parámetro 'in' para volver a propagar el valor actualizado al llamador.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Les attributs '[In]' et '[Out]' ne sont pris en charge que sur les paramètres de tableau. Pensez à utiliser le mot-clé 'ref' pour rendre le paramètre mutable.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">Attributs [In] et [Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Les objets marshallés à partir de VARIANT en tant que paramètres « in » dans les appels non gérés à gérés ne propageront pas le résultat mis à jour, même si le VARIANT est une variante de VT_BYREF. Utilisez un paramètre « ref » au lieu d’un paramètre « in » pour propager la valeur mise à jour à l’appelant.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Gli attributi [In]' e '[Out]' sono supportati solo nei parametri di matrice. Provare a usare le parole chiave 'ref' per rendere modificabile il parametro.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">Attributi [In] e [Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Gli oggetti di cui è stato eseguito il marshalling da VARIANT come parametri 'in' nelle chiamate da non gestito a gestito non verranno propagati nuovamente al risultato aggiornato, anche se VARIANT è una variante VT_BYREF. Usare un parametro 'ref' invece di un parametro 'in' per propagare nuovamente il valore aggiornato al chiamante.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">'[In]' および '[Out]' 属性は、配列パラメーターでのみサポートされます。パラメーターを変更可能にするには、'ref' キーワードを使用することを検討してください。</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">属性の[In]と[Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">アンマネージからマネージドへの呼び出しで VARIANT から 'in' パラメーターとしてマーシャリングされたオブジェクトは、VARIANT が VT_BYREF バリアントであっても、更新された結果に反映されません。更新された値を呼び出し元に反映するには、'in' パラメーターの代わりに 'ref' パラメーターを使用してください。</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">'[In]' 및 '[Out]' 특성은 배열 매개 변수에서만 지원됩니다. 매개 변수를 변경 가능하게 만들려면 'ref' 키워드를 사용하는 것이 좋습니다.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">[In] 및 [Out] 속성</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">관리되지 않는 호출에서 관리되는 호출로의 VARIANT에서 'in' 매개 변수로 마샬링된 개체는 VARIANT가 VT_BYREF 변형인 경우에도 업데이트된 결과를 다시 전파하지 않습니다. 'in' 매개 변수 대신 'ref' 매개 변수를 사용하여 업데이트된 값을 호출자에게 다시 전파합니다.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Atrybuty „[In]” i „[Out]” są obsługiwane tylko w przypadku parametrów tablicy. Rozważ użycie słowa kluczowego „ref”, aby umożliwić modyfikowanie parametru.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">Atrybuty [In] i [Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Obiekty przekazywane z obiektów VARIANT jako parametry „w” w wywołaniach niezarządzanych do zarządzanych nie będą propagować z powrotem zaktualizowanego wyniku, nawet jeśli parametr VARIANT jest wariantem VT_BYREF. Użyj parametru „ref” zamiast parametru „w”, aby propagować zaktualizowaną wartość z powrotem do obiektu wywołującego.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Os atributos '[In]' e '[Out]' só têm suporte nos parâmetros de matriz. Considere usar a palavra-chave 'ref' para tornar o parâmetro mutável.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">Atributos [In] e [Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Objetos marshalled de VARIANTs como parâmetros "in" em chamadas não gerenciadas para gerenciadas não propagam de volta o resultado atualizado, mesmo que VARIANT seja uma variante VT_BYREF. Use um parâmetro "ref" em vez de um parâmetro "in" para propagar o valor atualizado de volta para o chamador.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">Атрибуты "[In]" и "[Out]" поддерживаются только для параметров массива. Рассмотрите возможность использования ключевого слова "ref", чтобы сделать параметр изменяемым.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">Атрибуты [In] и [Out]</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Объекты, маршалированные из VARIANT в качестве параметров "in" в вызовах с переходом от неуправляемых к управляемым, не будут распространяться обратно на обновленный результат, даже если VARIANT является вариантом VT_BYREF. Используйте параметр "ref" вместо параметра "in", чтобы распространить обновленное значение обратно на вызывающую сторону.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">'[In]' ve '[Out]' öznitelikleri yalnızca dizi parametrelerinde desteklenir. Parametreyi değiştirilebilir yapmak için 'ref' anahtar sözcüğünü kullanmayı düşünün.</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">[In] ve [Out] öznitelikleri</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">Yönetilmeyenden yönetilene yapılan çağrılarda 'in' parametresi olarak kullanılan VARIANT'lardan hazırlanma işlemiyle elde edilen nesneler, VARIANT çeşidi VT_BYREF olsa bile güncelleştirilmiş sonucu geri yaymaz. Güncelleştirilmiş değeri çağırana geri yayma için 'in' parametresi yerine bir 'ref' parametresi kullanın.</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">“[In]”和“[Out]”属性仅在数组参数上受支持。请考虑使用“ref”关键字使参数可变。</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">[In] 和 [Out] 属性</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">在非托管到托管调用中从 VARIANT 封送为“in”参数的对象不会传回更新后的结果,即使 VARIANT 是 VT_BYREF 变量也是如此。使用 "ref "参数代替 "in "参数,将更新后的值传回调用方。</target>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,6 @@
<target state="translated">只有在陣列參數上才支援 '[In]' 和 '[Out]' 屬性。請考慮使用 'ref' 關鍵字,讓參數成為可變動。</target>
<note />
</trans-unit>
<trans-unit id="InOutAttributes">
<source>[In] and [Out] attributes</source>
<target state="translated">[In] 與 [Out] 屬性</target>
<note />
</trans-unit>
<trans-unit id="InVariantShouldBeRef">
<source>Objects marshalled from VARIANTs as 'in' parameters in unmanaged-to-managed calls will not propagate back the updated result, even if the VARIANT is a VT_BYREF variant. Use a 'ref' parameter instead of an 'in' parameter to propagate the updated value back to the caller.</source>
<target state="translated">在未受控對受控呼叫中,從 VARIANT 封送處理為 'in' 參數的物件將不會傳播回更新的結果,即使 VARIANT 是 VT_BYREF 變數亦然。使用 'ref' 參數而非 'in' 參數,以將更新的值傳播回呼叫者。</target>
Expand Down
Loading
Loading