perl - 如何从 Win32::OLE 中的 HWND 获取 COM 对象?

标签 perl winapi ole

在 Perl 中,如果我有窗口对象的 HWND,如何使用该句柄访问该 COM 对象?我查看了 Win32::OLE,但我得到的最接近的是 GetActiveObject 方法,它需要一个类。

最佳答案

没有标准方法可以从 HWND 获取 COM 接口(interface)指针,因为窗口不是 COM 对象。基本的 Windows API(包括窗口句柄)早于 OLE 和 COM 的发明。特定窗口的实现可以通过 COM 接口(interface)公开其部分或全部功能,但这些接口(interface)将是特定于应用程序的。

如果有记录表明您要控制的窗口公开了公共(public) COM 接口(interface),则该窗口的文档还将告诉您如何在窗口中查询接口(interface)指针。最有可能的是,它需要发送特定于应用程序的 window message .

关于perl - 如何从 Win32::OLE 中的 HWND 获取 COM 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658664/

相关文章:

list - 如何在测试用例的多行列表初始化程序中获取当前行号?

vba - Windows API WH_MOUSE hook 在模态模式下在 VBA 用户窗体上成功,但在无模式模式下失败

c++ - 在 Windows 中,SetCurrentConsoleFontEx 是否会更改控制台的字体大小?

java - 读取 oleObject 文件的代码

powershell - 无法在PowerShell函数中运行[System .__ ComObject] .InvokeMember

perl - 如何在mod_perl2下的startup.pl中学习DOCUMENT_ROOT?

linux - Test::MockTime 在某些情况下不会模拟时间

c# - 在 C# 中释放 OLE IStorage 文件句柄

perl - otherlibdirs 配置选项是否重写或仅修改@INC?

c++ - 如何检测计算机是否正在关闭以保存 session