问题标签 [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.
c++ - 从 C++ 中的接口名称获取 IID?(VS 2010 自动化)
给定 COM 接口的名称作为字符串,如何获取相应的 IID 以便可以调用 QueryInterface()?
例如:
当然,这假设接口名称在系统范围内是唯一的,如果不是,则需要更多上下文。上下文是我有一个用于自动化 VS 2010 的脚本引擎,并且需要根据从脚本中作为字符串读取的接口名称在类型之间进行转换。我已经有一个 IDispatch* 用于要转换的对象。
编辑:
用户 Alf 评论说我不应该这样做,我很乐意不这样做。使用 ITypeLib,我确定我的 IDispatch(由 CommandBarControls.Add(msoButton) 创建)是一个 CommandBarControl。我需要一个用于 CommandBarButton 的 IDispatch,以便我可以访问特定于按钮的属性,例如 Style 属性—— CommandBarControl IDispatch 无法识别此属性。我的 IDispatch AFAIK 上支持的接口是:
生成如下图。CommandBarButton 未在此处列出,因此希望有人向我展示如何仅使用 IDispatch 的运行时机制来执行此转换。
实验代码:
firefox - 在 Firefox 32 扩展中获取当前内部窗口 ID
我正在尝试维护一个 Firefox 扩展,它依赖于获取当前的内部窗口 ID。在 Firefox 31 中,窗口对象有一个 QueryInterface:
在 Firefox 32 中,window.QueryInterface 对象已经消失,我想知道如何获取当前的内部窗口 ID。
谢谢。
ruby-on-rails - Rails 从关联中获取所有内容,包括最后一行
我有两个模型 has_many 属于关系。
我需要获取只有最后一个导航值的所有方案。我有 10 个方案,每个方案都有大约 100k 导航,但我只需要最后一条记录,即当前值。
急切加载将加载所有导航
如何在急切加载时应用条件以仅获取每个方案的最后一行导航。
更新日志
如果我跑
这些是 AR 执行的查询
第二个查询是如何工作的,它将获取 schemeCode 属于 list 的所有导航,并按 id DESC 对它们进行排序,但它将如何与特定方案准确关联。
ruby-on-rails - Rails Active Record如何检查关联记录不为空
我无法从 Active Record 中找到查询界面来仅显示至少具有一种产品的类别。怎么做?
类别.rb
产品.rb
谢谢你
typo3 - TYPO3 extbase 数据库查询
我有一个如下所示的 extbase 数据库查询。
我将此查询转换如下,
但结果查询不包含与以下相关的查询部分,
我认为上述查询中还有其他错误。
请帮助我创建正确的查询。
提前致谢。
ruby-on-rails - 调用 'where' 会返回什么?
我有以下问题,让
@post
如果“title1”存在与否应该是什么?如何检查“where”是否返回了任何元素?
在我刚刚调用的应用程序中
但它总是进入其他
python - 将comtypes移植到win32com
在 Python 脚本中,我必须用 win32com 和 pythoncom 替换 comtypes 的使用。基本上我有这个代码:
目标是使用 win32com 获得类似的功能。据我了解,事件处理程序类不需要更改。第一部分很简单:
但是,在尝试将事件处理程序从查询接口映射到对象时,我遇到了困难。
你可以帮帮我吗?我确实有一般的软件开发经验,但是有限的 COM 知识。
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
方法。它只需要一个参数,IUnknown *pUnkSite
。
我记得,我可以pUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow);
从站点获取 IOleWindow 接口,然后我可以调用pOleWindow->GetWindow(&hWnd);
来获取父窗口句柄;所以我可以创建我的工具栏窗口作为窗口的子窗口hWnd
。
所以我做到了,并意识到pUnkSite->QueryInterface(IID_IOleWindow, (void**)&pOleWindow);
返回0x80004002
的是E_NOINTERFACE
错误,所以IOleWindow
不是由pUnkSite
对象实现的!我在调试器中打开IE,加载符号,追踪QISearch
并意识到没有IOleWindow
接口的实现。如果我没记错的话,那是CIEFrameAuto
界面。
那么,如何IOleWindow
为我的工具栏获取父窗口的界面呢?
sql - 如何根据关联对象的最后记录列对 ActiveRecord 关系进行排序
我有2个模型如下:
假设我有 2 个客户 c1 和 c2。
c1 有 1 例,c2 有 2 例。
我想获取所有客户端并按每个客户端 asc/desc 的最后一个案例类型进行排序。所以如果我按 asc 排序,我应该得到 'c1' 然后是 c2 的结果。如果我按 desc 排序,我应该得到 'c2' 然后 'c1' 的结果。以下是我迄今为止尝试过的。
由于 c2 也有一个“普通”类型的案例,我认为查询似乎是先找到客户端,然后它会执行类似于 client.cases 的操作。然后,我认为它只在每个客户端下订购案例,而不是跨客户端订购案例。
我觉得我的解释有点混乱。如果你有,请给我一个问题。谢谢。
c++ - 为什么 QueryInterface 会针对同一行代码查看两个不同的 COM 项目?
首先让我说我对 COM 的工作非常缺乏经验,但我的任务是为其他人调试问题
我有两个名为 pvTaskCOM 和 pvFormsCOM 的 COM 项目,每个项目都有很多接口,但我关心的两个是:
pvTaskCOM 中的 ITaskActPtr
pvFormsCOM 中的 IChartingObjectPtr
导致我的问题的代码行是:
其中 m_pChartObj 是 IChartingObjectPtr。我遇到的问题是 pTaskAct 在一个工作流程中分配后为 NULL,但在大多数其他工作流程中都很好。我使用调试器深入研究了这里发生的事情,发现它在 QueryInterface 期间查看了错误的 COM 条目。在工作正常的工作流中,QueryInterface 从 pvTaskCOM/pvTaskAct.h 中获取条目:
其中包含我要转换到的接口,QueryInterface 返回 S_OK。
但在这个其他工作流程中,m_pChartObj 以相同的方式实例化,但 QueryInterface 出于某种奇怪的原因在 pvFormsCOM/ChartingObject.h
它不包含我们尝试转换到的 ITaskAct,因此 QueryInterface 返回 E_NOINTERFACE。
我的问题是什么可能导致它在同一行代码中查看两个不同的 COM?这是某种继承问题吗?我只需要朝着正确的方向迈出一步。