### Discussed in https://github.com/microsoft/CsWin32/discussions/456 <div type='discussions-op-text'> <sup>Originally posted by **AliveDevil** November 25, 2021</sup> I don't see any benefit of internalizing ThrowOnFailure: https://github.com/microsoft/CsWin32/blob/main/src/Microsoft.Windows.CsWin32/templates/HRESULT.cs#L43-L62 Same with `Succeeded` and `Failed`, consuming these members in any dependent project is impossible, unless `InternalsVisibleTo` is set.</div> We should promote `internal` members from templates to `public` when the NativeMethods.json contains `public: true`.