delphi7 获取显示器相关信息遇到问题

用DELPHI7 编写一个显示器相关程序时遇到以下问题:

C++函数原型

_BOOL GetCapabilitiesStringLength(
[in] HANDLE hMonitor,
[out] LPDWORD pdwCapabilitiesStringLengthInCharacters
);

https://docs.microsoft.com/zh-tw/windows/win32/api/lowlevelmonitorconfigurationapi/nf-lowlevelmonitorconfigurationapi-getcapabilitiesstringlength

?%ra=link

我将此函数转换成Delphi如下

function GetCapabilitiesStringLength(hPhysicalMonitor: THandle; out pdwCapabilitiesStringLengthInCharacters: DWORD): BOOL; external 'Dxva2.dll';

一直无法返回True

C++

_BOOL CapabilitiesRequestAndCapabilitiesReply(
[in] HANDLE hMonitor,
[out] LPSTR pszASCIICapabilitiesString,
[in] DWORD dwCapabilitiesStringLengthInCharacters
);

https://docs.microsoft.com/zh-tw/windows/win32/api/lowlevelmonitorconfigurationapi/nf-lowlevelmonitorconfigurationapi-capabilitiesrequestandcapabilitiesreply
?%ra=link
我将此函数转换成delhpi

function CapabilitiesRequestAndCapabilitiesReply(const hMonitor: THandle; var pszASCIICapabilitiesString: PAnsiChar; const dwCapabilitiesStringLengthInCharacters: DWORD): BOOL; external 'Dxva2.dll';

由于上一个函数反法正确返回,所以这个函数也没法确定转换是否有问题

完整代码
有没有?

句柄使用 参考这个:

确认下句柄使用条件和参数。

你好,请参考这些信息,如有帮助,请采纳!
需要满足如下条件。

要求 值
最低受支持的客户端
Windows[仅适用于 Vista 桌面应用]
最低受支持的服务器
Windows[仅限 Server 2008 桌面应用]


NTSTATUS WINAPI DDCCIGetCapabilitiesStringLength(
  _In_  HANDLE hMonitor,
  _Out_ DWORD  *pdwLength
);

参数
hMonitor [中]

物理监视器的句柄。

pdwLength [弄]

接收功能字符串的长度(以字符为限),包括终止 null 字符。

返回值
如果该方法成功,它将返回 状态 " _ 成功"。 否则,它将返回一个 NTSTATUS 错误代码。

备注
应用程序应调用 GetCapabilitiesStringLength 而不是调用此函数。

此函数没有关联的导入库。 若要调用此函数,必须使用 LoadLibrary 和 GetProcAddress 函数动态链接到 Gdi32.dll。

补充一下相应的截图以及代码重新格式化提交一下看看