求调用windows自带的iphlpapi.dll的DisableMediaSense函数来关闭媒体感知功能的代码。代码已经写出,不过始终调用失败

scor 2013-10-10 03:22:26
XP环境下测试的 不过不知道为什么 始终调用失败。 请高手帮忙看看
不知道win7下是否也支持

Function DisableMediaSense(HANDLE:Pointer;POVERLAPPED:Pointer):DWORD; stdcall;External 'iphlpapi.dll';


procedure TForm1.CB_NOClick(Sender: TObject);
var
aOverlapped: TOverlapped;
DriverHandle: THandle;
dwRetVal:DWORD;
begin
DriverHandle:= 0;
FillChar(aOverlapped,sizeof(Overlapped),0);
aOverlapped.hEvent:= CreateEvent(0, FALSE, FALSE, 0);
dwRetVal:= DisableMediaSense(@DriverHandle,@aOverlapped);
NO_ERROR
If dwRetVal<>ERROR_INVALID_PARAMETER Then Begin
showmessage('调用失败');
End Else Begin
showmessage('调用成功');
End;
{
ERROR_NOT_SUPPORTED
ERROR_OPEN_FAILED
ERROR_INVALID_PARAMETER
NO_ERROR
}
end;
...全文
90 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独de猫 2013-10-10
  • 打赏
  • 举报
回复
1)句柄为0,程序如何操作? 2)如果是清空结果体,直接用ZeroMemory()。 3)另外程序返回的是DWORD(C++) 则 Delphi 为 LongInt,参考 “万一博客”, 4)可以检测函数的返回值,成功则是 ERROR_IO_PENDING ,失败用 FormatMessage()进行格式化错误。 5)此函数的具体用法,可以参考MSDN。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧