C 正确使用LPDWORD
C++ Correct Usage of LPDWORD
本文关键字:LPDWORD 更新时间:2023-10-16
我有一系列hwnds的按钮,我想单击以查看。我还有一系列的Hwineventhooks来监视它们。GetWindowThreadProcessID给了我一个LPDWord Process ID,SetWineVenthook不接受。在此示例中,我是否正确使用LPDWords尚不清楚。请有人可以指向正确的方向吗?
编辑:谢谢所有贡献的人,我在下面发布了更正的代码。
新代码:
int i = 0;
for (HWND hWnd : hWnds) {
DWORD processID = 0;
DWORD threadID = GetWindowThreadProcessId(hWnd, &processID);
hooks[i] = SetWinEventHook(EVENT_OBJECT_INVOKED, EVENT_OBJECT_INVOKED,
NULL,
WinEventProcCallback, processID, threadID, WINEVENT_OUTOFCONTEXT);
i++;
}
LPDWORD
只是DWORD*
的键入,当Windows SDK函数参数为" lpsomething"时,通常需要将指针传递给"某物"(LP [C]除外)[w] str字符串类型)。
DWORD processID;
DWORD threadID = GetWindowThreadProcessId(hWnd, &processID);
if (threadID)
{
// Do something with threadID and/or processID
}
Windows SDK使用系统符号用于桌面/经典API。