質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

1367閲覧

C# windows form webview2 エラー[インターフェイスがサポートされていません ]の原因が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/11/17 07:06

windows form です。
提示のWebview2の利用でソースコードですが以下のtry castchにて以下の例外が発生してしまうのですがこれはなぜでしょうか?

調べたこと

検索しましたがC# windows form に関する記事がヒットしません。
null参照がst変数に来ているかどうかを確認
表示自体はされます。

参考サイト:https://social.msdn.microsoft.com/Forums/office/en-US/61558e41-387b-4a85-abd0-459b62916fba/error-the-queryinterface-call-on-the-com-component-for-the-interface-with-iid?forum=outlookdev

例外
いいいい 109357828712607029 Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Controller'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{4D00C0D1-9434-4EB6-8078-8697A560334F}' failed due to the following error: インターフェイスがサポートされていません (0x80004002 (E_NOINTERFACE)). いいいい
ソースコード

cs

1 2 public void setStreamTimeLine() 3 { 4 Task.Run( async () => 5 { 6 string? id = null; 7 while(true) 8 { 9 Console.WriteLine("いいいい"); 10 11 List<JsonData.Post>? post = await client.getHomeTimeLine_Async(id, null, null, "10", null); 12 if(post != null) 13 { 14 Console.WriteLine(post[0].id); 15 Debug.WriteLine("あああああ"); 16 17 Program.timeLine_form.setViewTimeLine(post); 18 19 Debug.WriteLine("いいいいい"); 20 21 id = post[0].id; 22 } 23 24 25 } 26 27 28 29 }); 30 } 31

cs

1 2 string st = ""; 3 4 public void setViewTimeLine(List<JsonData.Post>? post) 5 { 6 if(post == null) 7 { 8 //onsole.WriteLine("qqq"); 9 } 10 foreach(JsonData.Post p in post) 11 { 12 13 st += getPost(p); 14 } 15 16 17 18 19 //Console.WriteLine("ああああ " +st); 20 21 Debug.WriteLine("qqqqq"); 22 try 23 { 24 //webView.Reload(); 25 webView.NavigateToString(st); 26 } 27 catch (System.Exception e) 28 { 29 Console.WriteLine(e.Message); 30 } 31 Debug.WriteLine("eeeeeee"); 32 33 } 34

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

解決方法

invoke()メソッドを使う

cs

1Program.timeLine_form.Invoke(() => 2 { 3 Program.timeLine_form.setViewTimeLine(post); 4 5 }); 6

投稿2022/11/17 08:19

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問