我仍在努力找出这个问题的答案。我希望朝着正确的方向推动(因为我在 OLE 方面的经验很少)。有人在调用 RevokDragDrop 后遇到类似的错误吗?
谢谢
您将封送接口传递到另一个单元。尝试调用方法揭示了这一点,并且调用中止并因此错误而中止RPC_E_WRONG_THREAD
。
在多个线程上使用接口指针时应小心。如果您打算使用已经从其他线程持有的指针,则必须考虑是否允许您这样做,或者您需要显式封送/取消封送指针以进行此类使用,例如使用CoMarshalInterThreadInterfaceInStream
函数。
我想问题的根源是GetProp
/SetProp
使用的API。这些存储原始指针,因为它们在途中无需封送。