ドラッグイベントでファイルを操作することはできますか?ドラッグ&ドロップC++でドロップ前にOutlookファイルを操作する
ご存知のように、特定のサードパーティ製のプログラム(Firefox、Chromeなど)で理解できないドラッグ操作&を実行するために、ほとんどのWindowsプログラム(この特定のケースではOutlook)がストリームを使用しています。私はサードパーティ製のプログラムの動作を変更することができないので、私は一時的なフォルダにファイルをコピーし、サードパーティのプログラムのドロップが発生する前にドロップ情報を(ole & com)を操作するOutlookアドインをコードしようとしました。
私は次のような問題があります。
私は干渉していたイベントは極端な回避策です:ドラッグメールをトリガする別の見通し要素を横断する必要があるように、Outlook内「DragEnterイベント」COMイベント。それはテスト目的のためのものでした。問題は、電子メールをドラッグして同時にドロップ情報を操作したり、自分のドラッグを強制したりするときにどこでグローバルに接続できるかです。& drop(DoDragDrop(..))?
HRESULT TDropTarget::DragEnter(IDataObject* pDataObj, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) {
//...
//get data from pDataObj, create file and new IDataObject* pDataObject which points to file
DWORD dwResult = DoDragDrop(pDataObject, pDropSource, DROPEFFECT_COPY, pdwEffect);
if(dwResult == DRAGDROP_S_DROP) { // success!
OutputDebugString(TEXT("DRAGDROP_S_DROP\r\n"));
} else if (dwResult == DRAGDROP_S_CANCEL) { // cancelled
OutputDebugString(TEXT("DRAGDROP_S_CANCEL\r\n"));
}
pDataObject->Release();
pDropSource->Release();
return S_OK;
}