哪位高人帮忙把上面代码翻译成delphi,谢了
发布时间:2011-06-24 19:35:00 文章来源:www.iduyao.cn 采编人员:星星草
哪位高人帮忙把下面代码翻译成delphi,谢了
HRESULT ShowShellDocViewMenu(LPDISPATCH lpDocDisp, POINT pt, UINT nCmdID)
...{
HRESULT hr = S_FALSE;
IOleCommandTarget *pct;
if ( lpDocDisp && SUCCEEDED(lpDocDisp->QueryInterface(IID_IOleCommandTarget, (void **)&pct)))
...{
try
...{
CComVariant vtIn;
vtIn.vt = VT_I4;
vtIn.lVal = MAKELONG(pt.x, pt.y);
CComVariant vtOut;
hr = pct->Exec(&CGID_ShellDocView, nCmdID, OLECMDEXECOPT_DONTPROMPTUSER, &vtIn, &vtOut);
}
catch (...) ...{
}
pct->Release();
}
return hr;
}
这个是调用IE管理加载项的代码,不知道怎么专程delphi,帮忙下,谢谢了。
------解决方案--------------------
var
hr:HRESULT;
pct:^IOleCommandTarget;
vtin,vtout:TVarRec;
begin
hr := S_FALSE;
if (lpDocDisp<>nil) and (lpDocDisp^.QueryInterface(IID_IOleCommandTarget,@pct)=S_OK)
then
try
vtIn.vt = VT_I4;
vtIn.lVal = pt.x+(pt.y shl 16); //MAKELONG(pt.x, pt.y);
hr := pct^.Exec(@CGID_ShellDocView, nCmdID,OLECMDEXECOPT_DONTPROMPTUSER, @vtIn, @vtOut);
finally
pct^.Release;
end;
result:= hr;
end;
希望能帮到你
------解决方案--------------------
vtIn.lVal = pt.x+(pt.y shl 16); //MAKELONG(pt.x, pt.y);
这行应该改为
vtIn.lVal = pt.x or DWORD(pt.y shl 16); //MAKELONG(pt.x, pt.y);
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
delphi 绘图
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if (CheckBox1.Checked) then
begin
ADOQuery2.A...
-
键列信息不足或不正确,更新影响到过多的行
我把csv文件内的很多记录,要使用ado写入到excel中,结果报如题错误
问题该怎么解决啊
...
-
dax error : access violation at address
<OBJECT classid="clsid:A318A9AC-E75F-424C-9364-6B40A848FC6B" width=20 height=20 ...
-
c# 操作excel 去掉单元格已有的边框
如题,excel有黑色边框,怎么样才能把边框去掉?
------解决方案--------------------
SQL code
...
-
为什么现在delphi写的程序都会被杀软误报?
360杀毒,金山毒霸都误报有毒,没有写任何代码,生成都误报毒,SysConst.dcu只有12kb,自己没有...
-
关于Delphi7 调用C++ dll 传参问题。
C++ DLL h文件:C/C++ code
extern "C" __declspec(dllexport) unsigned int __stdcall W...
-
求高手封装成一个方法
C# code
private void Form1_Load(object sender, EventArgs e)
{
PrintDocument pr...
-
delphi7 dbexpress sqlserver2005
本人新手,请问delphi7可以用dbexpress中的sqlconnection组件连接sqlserver2005中的数据库吗?自己...
-
动态生成多个button并触发该事件 急!急!急!!!
在asp.net中,在指定位置动态生成了多个button,怎么样获取他所对应的ID
我的做法是:
在页面...
-
c#关于窗体间传值的问题
我在网上下了个代码,它的代码:在窗体A中能使用窗体B中定义的东西(它定义的是个委托)。
我却发现个很奇怪的事...