C# 我需要使用Windows API获取PowerPoint形状的句柄,以便捕获形状上的事件?

C# 我需要使用Windows API获取PowerPoint形状的句柄,以便捕获形状上的事件?,c#,winapi,event-handling,shapes,office-addins,C#,Winapi,Event Handling,Shapes,Office Addins,我正在用C编写一个PowerPoint加载项,需要知道形状何时被删除或形状上何时发生鼠标事件。我使用Windows API SetWindowsHookEx获取应用程序的鼠标事件,并将其与PowerPoint公开的WindowSelectionChange事件相结合,以了解形状何时移动或调整大小。我一直在寻找Windows API调用,这些调用可能会获得形状的句柄,然后使我能够添加一个钩子,以逐个形状捕获事件,但在那里找不到任何内容。根据我对SetWindowsHookEx的使用情况,如果必须的

我正在用C编写一个PowerPoint加载项,需要知道形状何时被删除或形状上何时发生鼠标事件。我使用Windows API SetWindowsHookEx获取应用程序的鼠标事件,并将其与PowerPoint公开的WindowSelectionChange事件相结合,以了解形状何时移动或调整大小。我一直在寻找Windows API调用,这些调用可能会获得形状的句柄,然后使我能够添加一个钩子,以逐个形状捕获事件,但在那里找不到任何内容。根据我对SetWindowsHookEx的使用情况,如果必须的话,我很乐意将非托管代码合并到我的加载项中。有人能帮忙吗?

我感觉这些单独的形状不是带有单独窗口把手的单独窗口。查看是否可以通过COM、OLE或VBA控制PowerPoint。除此之外,我不知道答案。嗨,谢谢你的回复。我想你是对的-我已经做了进一步的挖掘并使用了EnumWindows函数-没有出现奇怪的形状组合框!。我现在想我可能需要运行一个单独的线程来监控幻灯片上的形状以进行删除等操作,但这似乎有点过头了。我的想法是,PowerPoint能够捕捉单个形状上的事件,我认为这些事件来自操作系统,因此理论上我也应该能够与这些事件挂钩。关于如何进行的任何进一步思考都将是非常好的。谢谢。@JasonSmith您很久以前问过这个问题,但也许您发现了更多的见解可以分享?我真的很好奇人们怎么能在每个形状上设置挂钩!嗨,Cilvic,我担心我找不到任何方法来捕捉单个形状上的事件,并且依赖Windows鼠标事件和PowerPoint事件-这是一个冗长的工作!很抱歉,帮了大忙-如果你发现什么,请告诉我。