为COM挂接一个回调接口,在如C++,C#中可以调用AtlAdvise或从
IConnectionPointContainer挂接(Sink必须具象继承接口的全部成员)
但易语言则不同,易语言在COM支持上一直存在缺陷,易语言是一个
强类型语言,而“Object / 对象”似乎很类似IDispatch*但似乎又不是
而易语言本身则未提供任何可以具备事件点对点的方法 需要挂接的话
着实令人头疼不已
// IDispatch* pdisp = NULL;
// if(SUCCEEDED(CoInitialize(NULL)) != FALSE)
// {
// CoCreateInstance(__uuidof(CLSID_ScriptControl), NULL, CLSCTX_INPROC_SERVER, __uuidof(IDispatch), (void**)&pdisp);
// }
// UINT pctinfo;
// IDispatch* pdisp;
// pdisp->GetTypeInfoCount(&pctinfo);
// mov esi,esp
// lea eax,dword ptr [pctinfo]
// push eax
// push eax
// mov ecx,dword ptr [pdisp]
// mov edx,dword ptr [ecx]
// mov eax,dword ptr [pdisp]
// push eax
// mov edx,dword ptr [ecx]
// mov eax,dword ptr [pdisp]
// push eax
// mov ecx,dword ptr [edx+0Ch]
// call ecx
// call ecx
上面是一个调用IDispatch::GetTyp