簡體   English   中英

C ++正確使用LPDWORD

[英]C++ Correct Usage of LPDWORD

我有一個要監視點擊次數的hWnds數組。 我還有一組HWINEVENTHOOK,將用來監視它們。 GetWindowThreadProcessID給我一個LPDWORD進程ID,SetWinEventHook不接受。 我不清楚在此示例中我是否正確使用了LPDWORD。 請有人指出正確的方向嗎?

編輯:謝謝所有貢獻者,我在下面發布了更正后的代碼。

新代碼:

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*的typedef,並且Windows SDK函數參數為“ LPsomething”時,通常需要將指針傳遞給“ something”(LP [C] [W] STR字符串類型除外)。

DWORD processID;
DWORD threadID = GetWindowThreadProcessId(hWnd, &processID);
if (threadID)
{
  // Do something with threadID and/or processID
}

Windows SDK將“ 系統匈牙利語”表示法用於Desktop / Classic API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM