Microsoft MVP성태의 닷넷 이야기
글쓴 사람
윤용한
홈페이지
첨부 파일
 
부모글 보이기/감추기

안되는 줄 알았는데, 이전 직장에 함께근무했던 선배한테 물어보니 된다는 군요...^^ (혼자 도배하는 기분이네요)

[
    uuid(AAA60663-440E-446E-99AF-2A0DEEB389C4),
    helpstring("_IWebTreeEvents Interface")
]
dispinterface _IWebTreeEvents
{
properties:
methods:
    [id(1), helpstring("method BeforeMove")] HRESULT BeforeMove([in, out]VARIANT_BOOL *Cancel);
};

 

 

HRESULT Fire_BeforeMove(VARIANT_BOOL * Cancel)

{

    CComVariant varResult;

    T* pT = static_cast<T*>(this);

    int nConnectionIndex;

    CComVariant* pvars = new CComVariant[1];

    int nConnections = m_vec.GetSize();

    for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)

    {

        pT->Lock();

        CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);

        pT->Unlock();

        IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);

        if (pDispatch != NULL)

        {

            VariantClear(&varResult);

            pvars[0].vt = VT_VARIANT | VT_BYREF;

            VARIANT varCancel;

            varCancel.vt = VT_BOOL;

            varCancel.boolVal = *Cancel;

            pvars[0].pvarVal = &varCancel;

            DISPPARAMS disp = { pvars, NULL, 1, 0 };

            pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL);

            if (varCancel.vt & VT_BOOL)

                *Cancel = varCancel.boolVal;

            else

                *Cancel = VARIANT_FALSE;

        }

    }

    delete[] pvars;

    return varResult.scode;

}








[최초 등록일: ]
[최종 수정일: 5/30/2006]


비밀번호

댓글 작성자
 




NoWriterDateCnt.TitleFile(s)