問題タブ [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.
firefox - Firefox 32 拡張機能で現在の内部ウィンドウ ID を取得する
Firefox 拡張機能を維持しようとしていますが、現在の内部ウィンドウ ID の取得に依存しています。Firefox 31 では、window オブジェクトに QueryInterface があります。
Firefox 32 では window.QueryInterface オブジェクトがなくなり、現在の内部ウィンドウ ID を取得する方法を知りたいです。
ありがとう。
ruby-on-rails - 「where」を呼び出すと何が返されますか?
次の質問があります。
@post
「title1」が存在するかどうかはどうすればよいですか? 「where」が要素を返したかどうかを確認するにはどうすればよいですか?
私のアプリケーションでは、私はちょうど呼び出しました
しかし、それは常に他のものに入ります
c++ - pUnkSite->QueryInterface(IID_IOleWindow) が BHO で E_NOINTERFACE で失敗する
Microsoft Visual C++ と Windows 7 を使用しています
。ATL と MFC を使用して IE ツールバーを開発しています。IE のバージョンは 11.0.9600.17420 です。
まず、COM オブジェクトの実装IDeskBand
とIObjectWithSite
インターフェイスを作成しました。
次に、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 を開き、シンボルをロードし、トレースして、インターフェイスの実装がないことに気付きました。私が間違っていなければ、それはインターフェースでした。0x80004002
E_NOINTERFACE
IOleWindow
pUnkSite
QISearch
IOleWindow
CIEFrameAuto
IOleWindow
では、ツールバーの親ウィンドウのインターフェイスを取得するにはどうすればよいですか?
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 を見ている原因は何ですか? ある種の継承の問題ですか?正しい方向への一歩が必要です。