添加丢弃源功能

【勇芳软件工作室】汉化HomePreviousNext

要使应用程序成为拖放操作的来源,请按照下列步骤操作:

初始化OLE库。使用OLE库的任何应用程序必须检查库的版本,并在初始化期间调用OleInitialize函数。

您应该确保系统的OLE库至少与应用程序的OIB库一样。

在调用任何其他OLE函数之前,必须调用OleInitialize来初始化OLE库。因为OleInitialize的每次呼叫必须与OleUninitialize功能匹配,您应该保留【fOleInitialized】标志,以便您在应用程序退出时知道是否调用OleUninitialize.

2.实现IDropSource界面。不包括从IUnknown继承的成员函数,IDropSource只有两个成员函数:QueryContinueDragGiveFeedback.OLE在拖动操作期间间歇地调用QueryContinueDrag.其参数包括键盘的状态,缩放源用于控制拖动操作。下拉源返回S_OK值以继续拖动,DRAGDROP_CANCEL值取消拖动,或者DRAGDROP_DROP值删除该对象。

3.OLE调用GiveFeedback来告诉下载源更新光标,并向源窗口询问如果用户在当前点下降会发生什么情况的可视化反馈。更新游标听起来很多,但如果返回DRAGDROP_S_USEDEFAULTCURSORS值,OLE将使用其默认游标。

4.实现OLE应用程序使用的IDataObject接口传输数据。在拖放操作中,drop source给OLE指向其IDataObject实现的指针。当光标首次进入目标窗口并出现下降时,OLE将保存指针并将其传递到放置目标。幸运的是,您只需要实现以下(非IUnknownIDataObject成员函数,用于拖放支持:GetDataGetDataHereQueryGetDataEnumFormatEtc.

5.调用DoDragDrop函数开始拖动操作。在您检测到用户想拖动某些东西之后,您应该调用DoDragDrop.OLE使用传入的IDataObjectIDropSource指针及其注册的放置目标列表来控制拖动操作。拖动操作完成后,DoDragDrop返回DRAGDROP_S_DROP或DRAGDROP_S_CANCEL值。此外,OLE在【pdwEffect】指向的地址中返回一个DWORD,该地址说明了丢弃如何影响源数据,也就是说,操作是移动,复制,链接还是滚动。您应该查看【pdwEffect】值,并根据需要修改源数据。

6.电话OleUninitialize.在OLE应用程序退出之前,它必须调用OleUninitialize才能释放OLE库。如果OleInitialize成功返回,您应该在致电OleUninitialize之前检查您的【fOleInitialized】标志,只能致电OleUninitialize.