Invokehelper的使用说明.doc_第1页
Invokehelper的使用说明.doc_第2页
Invokehelper的使用说明.doc_第3页
Invokehelper的使用说明.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

InvokeHelper当在项目中插入ActiveX控件ClassWizard生成的CWnd的派生类C+类中,可以看到其成员函数的代码中都有对InvokeHelper函数的调用,InvokeHelper函数的第一个参数都和对应的属性或方法在ActiveX控件中的分发(dispatch)ID(标识ActiveX控件的方法或属性的)相对应。通过查看ActiveX控件hlp文件可以发现,ActiveX控件的方法在生存的C+类中都有同名的成员函数与之对应,ActiveX控件的属性都有一组Get和Set函数对其操作,其中ActiveX控件的方法和属性操作与生成的C+类成员函数相关联都是通过InvokeHelper函数的调用来完成的,InvokeHelper函数的第一个参数是由Component Gallery(控件提供者)提供的。因为经过这样的处理,所以我们如果要调用ActiveX控件的方法或对其属性进行取和设置操作,只需调用生成的C+类对应的成员函数便可。 下面对InvokeHelper单独说明: CWnd:InvokeHelper void InvokeHelper( DISPID dwDispID, WORD wFlags, VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, . ); 说明: Call this member function to invoke the OLE control method or property specified by dwDispID, in the context specified by wFlags. 其中参数: dwDispID: /Identifies the method or property to be invoked. This value is usually supplied by Component Gallery. wFlags:可以为下面些值,指明调用InvokeHelper的目的。 / DISPATCH_METHOD The member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set. DISPATCH_PROPERTYGET The member is retrieved as a property or data member. DISPATCH_PROPERTYPUT The member is changed as a property or data member. DISPATCH_PROPERTYPUTREF The member is changed by a reference assignment, rather than a value assignment. This flag is valid only when the property accepts a reference to an object. vtRet: /Specifies the type of the return value. VT_EMPTY void VT_I2 short VT_I4 long VT_R4 float VT_R8 double VT_CY CY VT_DATE DATE VT_BSTR BSTR VT_DISPATCH LPDISPATCH VT_ERROR SCODE VT_BOOL BOOL VT_VARIANT VARIANT VT_UNKNOWN LPUNKNOWN pvRet: /Address of the variable that will that will receive the property value or return value. It must match the type specified by vtRet. pbParamInfo:一般都设置为NULL /Pointer to a null-terminated string of bytes specifying the types of the parameters following pbParamInfo. specifies the types of the parameters passed to the method or property. .: /Variable List of parameters, of types specified in pbParamInfo. InvokeHelper()函数的用法 1、播放文件的函数: void CActiveMovie3:Run() InvokeHelper(0x60020001, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); 2、暂停播放的函数: void CActiveMovie3:Pause() InvokeHelper(0x60020002, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); 4、停止播放的函数: void CActiveMovie3:Stop() InvokeHelper(0x60020003, DISPATCH_METHOD, VT_EMPTY, NULL, NULL); 5、获得文件的函数: CString CActiveMovie3:GetFileName() CString result; InvokeHelper(0xb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); return result; 6、设置文件的函数: void CActiveMovie3:SetFileName(LPCTSTR lpszNewValue) static BYTE parms = VTS_BSTR; InvokeHelper(0xb, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, lpszNewValue); 7、获得播放位置的函数: double CActiveMovie3:GetCurrentPosition() double result; InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL); return result; 8、设置播放位置的函数: void CActiveMovie3:SetCurrentPosition(double newValue) static BYTE parms = VTS_R8; InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue); 9、获得音量的函数: long CActiveMovie3:GetVolume() long result; InvokeHelper(0x13, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL); return result;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论