We don't want to use reflection to get Guid information and also want to constrain generic helpers so in WinForms we implement INativeGuid on every generated COM struct:
internal interface INativeGuid
{
    public static abstract unsafe Guid* NativeGuid { get; }
}
internal unsafe partial struct IStream : IPopulateVTable<IStream.Vtbl>, INativeGuid
{
    static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in Guid));
}Here is an example of how we use it: #751 (comment)
Here is another:
picture.Value->QueryInterface(IPersistStream.NativeGuid, persist);