在 MFC(Microsoft Foundation Classes)中,COleControlSite::InvokeHelper 是 COleControlSite 类的一个公共方法,用于通过 IDispatch 接口调用嵌入的 ActiveX 控件的方法、获取属性或设置属性。

以下是该方法的简要说明:
BOOL COleControlSite::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
                                   void* pvRet, const BYTE* pbParamInfo, ...) const

参数说明:

  •  dwDispID:表示调用的分发标识符(DISPID)。

  •  wFlags:表示调用的标志,可以是 DISPATCH_METHOD、DISPATCH_PROPERTYGET、DISPATCH_PROPERTYPUT 等。

  •  vtRet:表示返回值的 VARIANT 类型。

  •  pvRet:指向存储返回值的缓冲区的指针。

  •  pbParamInfo:指向参数信息数组的指针,用于描述参数的类型。

  •  ...:可变参数,用于传递实际的方法参数值。


返回值:

  •  如果调用成功,返回 TRUE;否则返回 FALSE。


该方法用于调用嵌入的 ActiveX 控件的方法、获取属性或设置属性。通过传递相关的参数,你可以实现与 ActiveX 控件的交互,调用其提供的方法或获取/设置属性。

示例:
// 调用嵌入的 ActiveX 控件的方法
BOOL bResult = m_oleControlSite.InvokeHelper(DISPID_MY_METHOD, DISPATCH_METHOD,
                                              VT_EMPTY, nullptr, nullptr);

// 获取嵌入的 ActiveX 控件的属性值
CString strValue;
bResult = m_oleControlSite.InvokeHelper(DISPID_MY_PROPERTY, DISPATCH_PROPERTYGET,
                                        VT_BSTR, strValue.GetBuffer(MAX_PATH),
                                        nullptr);
strValue.ReleaseBuffer();

请注意,这是一个用于与 ActiveX 控件进行通信的强大方法。具体使用时需要了解控件的 DISPID、VARIANT 类型以及方法和属性的调用方式。


转载请注明出处:http://www.zyzy.cn/article/detail/21224/MFC/COleControlSite