[英]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.