問題タブ [queryinterface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
186 参照

firefox - Firefox 32 拡張機能で現在の内部ウィンドウ ID を取得する

Firefox 拡張機能を維持しようとしていますが、現在の内部ウィンドウ ID の取得に依存しています。Firefox 31 では、window オブジェクトに QueryInterface があります。

Firefox 32 では window.QueryInterface オブジェクトがなくなり、現在の内部ウィンドウ ID を取得する方法を知りたいです。

ありがとう。

0 投票する
1 に答える
27 参照

ruby-on-rails - 「where」を呼び出すと何が返されますか?

次の質問があります。

@post「title1」が存在するかどうかはどうすればよいですか? 「where」が要素を返したかどうかを確認するにはどうすればよいですか?

私のアプリケーションでは、私はちょうど呼び出しました

しかし、それは常に他のものに入ります

0 投票する
0 に答える
285 参照

c++ - pUnkSite->QueryInterface(IID_IOleWindow) が BHO で E_NOINTERFACE で失敗する

Microsoft Visual C++ と Windows 7 を使用しています
。ATL と MFC を使用して IE ツールバーを開発しています。IE のバージョンは 11.0.9600.17420 です。

まず、COM オブジェクトの実装IDeskBandIObjectWithSiteインターフェイスを作成しました。
次に、IDeskBandメソッドとIObjectWithSite::SetSiteメソッドを実装しました。パラメーターは 1 つだけIUnknown *pUnkSiteです。

私が覚えているようにpUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow);、サイトから IOleWindow インターフェイスを取得してからpOleWindow->GetWindow(&hWnd);、親ウィンドウ ハンドルを取得するために呼び出すことができます。これを使用して、ツールバー ウィンドウを window の子として作成できますhWnd

だから私はそれをして、それがpUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow);エラーであることに気づいたので、オブジェクトによって実装されていません! デバッガーで IE を開き、シンボルをロードし、トレースして、インターフェイスの実装がないことに気付きました。私が間違っていなければ、それはインターフェースでした。0x80004002E_NOINTERFACEIOleWindowpUnkSiteQISearchIOleWindowCIEFrameAuto

IOleWindowでは、ツールバーの親ウィンドウのインターフェイスを取得するにはどうすればよいですか?

0 投票する
2 に答える
98 参照

c++ - QueryInterface が同じコード行に対して 2 つの異なる COM プロジェクトを参照するのはなぜですか?

最初に、私は COM の動作に非常に不慣れですが、他の誰かのために問題をデバッグする任務を負っています。

pvTaskCOM と pvFormsCOM という名前の 2 つの COM プロジェクトがあり、それぞれに多くのインターフェイスがありますが、私が関心を持っているのは次の 2 つです。

pvTaskCOM にある ITaskActPtr

pvFormsCOM にある IChartingObjectPtr

私の問題を引き起こしているコード行は次のとおりです。

m_pChartObj は IChartingObjectPtr です。私が遭遇した問題は、1 つのワークフローでこの割り当てを行った後、pTaskAct が NULL になることでしたが、他のほとんどのワークフローでは問題ありませんでした。デバッガーを使用してここで何が起こっているのかを調べたところ、QueryInterface 中に間違った COM エントリが参照されていることがわかりました。正常に動作するワークフローでは、QueryInterface は pvTaskCOM/pvTaskAct.h からエントリを取得します。

キャストしようとしているインターフェイスが含まれており、QueryInterface は S_OK を返します。

しかし、この別のワークフローでは、m_pChartObj は同じ方法でインスタンス化されますが、QueryInterface は何らかの奇妙な理由で pvFormsCOM/ChartingObject.h 内を検索します。

これには、キャストしようとしている ITaskAct が含まれていないため、QueryInterface は E_NOINTERFACE を返します。

私が持っている質問は、コードの同じ行に対して 2 つの異なる COM を見ている原因は何ですか? ある種の継承の問題ですか?正しい方向への一歩が必要です。