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。