BOOL COLEDragDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
m_vDir1 = m_Dir1.GetControlUnknown();
m_vDir1->OLEDragMode = OLEDragSftControlManual;
return TRUE;
}
void COLEDragDlg::OnDragStartingSftDirectory1(short Button, short Shift, long xPos, long yPos)
{
ISftDirectoryFolderPtr pFolder;
pFolder = m_vDir1->CurrentFolder;
if (pFolder)
m_vDir1->OLEDrag(VARIANT_FALSE, VARIANT_TRUE, -1, -1);
}
void COLEDragDlg::OnOLEStartDragSftDirectory1(LPDISPATCH FAR* Data, long FAR* AllowedEffects)
{
IVDMDataObjectPtr pData(*Data);
pData->Clear();
pData->SetData(_variant_t(), _variant_t((short) sftCFText));
*AllowedEffects = 1; //vbDropEffectCopy
}
void COLEDragDlg::OnOLESetDataSftDirectory1(LPDISPATCH FAR* Data, short FAR* Format)
{
IVDMDataObjectPtr pData(*Data);
if (*Format == sftCFText) {
CString str;
CString strName = (LPCWSTR) m_vDir1->CurrentFolder->Name;
str.Format(_T("We're dragging a text string - \"%s\" - drop it in Write, Word (for example)"), strName);
pData->SetData(_variant_t((LPCTSTR) str), _variant_t((short) sftCFText));
}
}