| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1783 人关注过本帖
标题:问题?
只看楼主 加入收藏
只搞VC别无所求
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-27
收藏
 问题点数:0 回复次数:9 
问题?
请问朋友InvokeHelper()函数的是怎么用法的?里面的参数都代表怎么意思来得?
比如:
InvokeHelper(DISPID_REFRESH, DISPATCH_METHOD, VT_EMPTY, NULL, NULL)
帮帮忙,可以吗?
搜索更多相关主题的帖子: InvokeHelper NULL METHOD DISPATCH DISPID 
2006-02-27 22:56
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
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;
}

  10、设置音量的函数: void CActiveMovie3::SetVolume(long nNewValue)

{
  static BYTE parms[] = VTS_I4;
  InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nNewValue);
}

  11、设置自动开始播放的函数: void CActiveMovie3::SetAutoStart(BOOL bNewValue)

{
  static BYTE parms[] = VTS_BOOL;
  InvokeHelper(0x28, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, bNewValue);
}

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-02-28 09:15
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 

COleDispatchDriver::InvokeHelper

void InvokeHelper( DISPID dwDispID, WORD wFlags, VARTYPE vtRet, void* pvRet, const BYTE FAR* pbParamInfo, ... );
throw( COleException );
throw( COleDispatchException );

Parameters

dwDispID

Identifies the method or property to be invoked. This value is usually supplied by ClassWizard.

wFlags

Flags describing the context of the call to IDispatch::Invoke. For possible values, see the Platform SDK.

vtRet

Specifies the type of the return value. For possible values, see the Remarks section.

pvRet

Address of the variable that will receive the property value or return value. It must match the type specified by vtRet.

pbParamInfo

Pointer to a null-terminated string of bytes specifying the types of the parameters following pbParamInfo.

...

Variable list of parameters, of types specified in pbParamInfo.

Remarks

Calls the object method or property specified by dwDispID, in the context specified by wFlags. The pbParamInfo parameter specifies the types of the parameters passed to the method or property. The variable list of arguments is represented by ... in the syntax declaration.

Possible values for the vtRet argument are taken from the VARENUM enumeration. Possible values are as follows:

Symbol Return Type
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

The pbParamInfo argument is a space-separated list of VTS_ constants. One or more of these values, separated by spaces (not commas), specifies the function’s parameter list. Possible values are listed with the EVENT_CUSTOM macro.

This function converts the parameters to VARIANTARG values, then invokes the IDispatch::Invoke method. If the call to Invoke fails, this function will throw an exception. If the SCODE (status code) returned by IDispatch::Invoke is DISP_E_EXCEPTION, this function throws a COleException object; otherwise it throws a COleDispatchException.

For more information, see VARIANTARG, IDispatch, IDispatch::Invoke, and Structure of COM Error Codes in the Platform SDK.


本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-02-28 09:20
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
运行代码就可以了,如果你觉得你英文不错的话,我还能给你些相关的资料(全都是英文的)

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-02-28 09:21
只搞VC别无所求
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-27
收藏
得分:0 

多谢斑竹,可以的话,我很乐意需要这样的资料。
但我还是不打清楚InvokeHelper()里面的东西,各个参数是这样设的,又都是代表什么样的意思?

2006-03-01 05:03
只搞VC别无所求
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-27
收藏
得分:0 
我其实是做mis用ado时遇到这样问题的,加了控件后就自动添加了不少系统给你的类,比如datalist类里就有很多自带的函数都是带有InvokeHelper()的函数,不知道他是怎样设的?
2006-03-01 05:07
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
我找了很多资料,但是能解释InvokeHelper的却没有,我也很无奈,贴上那些,也只是希望能给你点帮助

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-03-01 08:08
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
按照InvokeHelper的名称猜,它应该是调用助手的方法,第一个参数可能是更新的内存地址。
以上纯属本人猜测

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-03-01 08:16
只搞VC别无所求
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-2-27
收藏
得分:0 

无论如何,还是多多谢斑竹的帮助,你该是个好斑竹,蛮关心大家的,我顶.
2006-03-04 07:18
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
谢谢楼上

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-03-05 08:25
快速回复:问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024755 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved