Hide

SftMask/OCX 7.0 - ActiveX Masked Edit Control

Display
Print

DragDrop3 Sample (C++)

This sample illustrates using an OLE drop target.

This is not an executable sample, so a complete project is not provided. These statements are intended to show basic concepts and the syntax used.

BOOL CProject1Dlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    m_pMask1 = m_Mask1.GetControlUnknown();
    _ASSERT(m_pMask1 != NULL);

    m_pMask1->Caption->SizePercent = 33;
    m_pMask1->Caption->Text = _T("&Filename:");
    m_pMask1->Mask = _T("");
    m_pMask1->MaxLength = 300;
    m_pMask1->PromptUnderline = VARIANT_FALSE;
    m_pMask1->OLEDropMode = OLEDropSftMaskManual;

    return TRUE;
}

void CProject1Dlg::OnOLEDragDropSftMask1(LPDISPATCH FAR* Data, long FAR* TargetChar, long FAR* Effect, short FAR* Button, short FAR* Shift, float FAR* x, float FAR* y)
{
    IVDMDataObjectPtr pData = *Data;

    if (pData->GetFormat(sftCFText) != VARIANT_FALSE) {
        _variant_t data = pData->GetData(_variant_t((long) sftCFText));
        data.ChangeType(VT_BSTR);
        m_pMask1->SelStart = *TargetChar;
        m_pMask1->SelText = data.bstrVal;
    } else
        *Effect = DROPEFFECT_NONE;
}

void CProject1Dlg::OnOLEDragOverSftMask1(LPDISPATCH FAR* Data, long FAR* TargetChar, long FAR* Effect, short FAR* Button, short FAR* Shift, float FAR* x, float FAR* y, long FAR* State)
{
    IVDMDataObjectPtr pData = *Data;

    if (*TargetChar < 0) {
        // Outside edit control (on caption)
        *Effect = DROPEFFECT_NONE;
    } else {
        // Inside edit control
        if (pData->GetFormat(sftCFText) != VARIANT_FALSE) {
            // OK, we have a text format
        } else {
            // No text format
            *Effect = DROPEFFECT_NONE;
        }
    }
}

BEGIN_EVENTSINK_MAP(CProject1Dlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CProject1Dlg)
    ON_EVENT(CProject1Dlg, IDC_SFTMASK1, 23 /* OLEDragDrop */, OnOLEDragDropSftMask1, VTS_PDISPATCH VTS_PI4 VTS_PI4 VTS_PI2 VTS_PI2 VTS_PR4 VTS_PR4)
    ON_EVENT(CProject1Dlg, IDC_SFTMASK1, 22 /* OLEDragOver */, OnOLEDragOverSftMask1, VTS_PDISPATCH VTS_PI4 VTS_PI4 VTS_PI2 VTS_PI2 VTS_PR4 VTS_PR4 VTS_PI4)
    //}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

Last Updated 08/13/2020 - (email)
© 2024 Softel vdm, Inc.