in ComUtilities.cs [47:67]
private static extern Result CoCreateInstanceFromApp([In, MarshalAs(UnmanagedType.LPStruct)] Guid rclsid,
IntPtr pUnkOuter,
CLSCTX dwClsContext,
IntPtr reserved,
int countMultiQuery,
ref MultiQueryInterface query);
internal unsafe static void CreateComInstance(Guid clsid, CLSCTX clsctx, Guid riid, ComObject comObject)
{
MultiQueryInterface localQuery = new MultiQueryInterface()
{
InterfaceIID = new IntPtr(&riid),
IUnknownPointer = IntPtr.Zero,
ResultCode = 0,
};
var result = CoCreateInstanceFromApp(clsid, IntPtr.Zero, clsctx, IntPtr.Zero, 1, ref localQuery);
result.CheckError();
localQuery.ResultCode.CheckError();
comObject.NativePointer = localQuery.IUnknownPointer;
}