// Copyright (c) 2020 Lv Decai, Shenzhen, China.// Filename: IpcUtility.cpp// Version: 1.0// Release date: 2020年10月11日// License: MIT (http://opensource.org/licenses/MIT)#include "StdAfx.h"#include "IpcUtility.h"NAMESPACE_BEGIN;// 向指定窗口发送 WM_COPYDATA 消息,传递数据int IpcUtility::SendIpcMessage(DWORD iMessageType, PCVOID pData, DWORD iLength, HWND hWnd){if (pData == NULL || iLength == 0){return ERROR_INVALID_PARAMETER;}COPYDATASTRUCT CopyData = { 0 };CopyData.dwData = iMessageType;CopyData.lpData = (PVOID) pData;CopyData.cbData = iLength;LRESULT lResult = SendMessage(hWnd, WM_COPYDATA, 0, (LPARAM) &CopyData);DWORD iLastError = GetLastError();return iLastError == ERROR_SUCCESS ? (int) lResult : iLastError;}// 向指定窗口发送 WM_COPYDATA 消息,传递数据int IpcUtility::SendIpcMessage(DWORD iMessageType, PCVOID pData, DWORD iLength, PCTSTR sWindowTitle, PCTSTR sWindowClass){if (pData == NULL || iLength == 0){return ERROR_INVALID_PARAMETER;}HWND hWnd = FindWindow(sWindowClass, sWindowTitle);if (hWnd == NULL){return ERROR_INVALID_WINDOW_HANDLE;}return SendIpcMessage(iMessageType, pData, iLength, hWnd);}// 解析接收到的外部程序发来的消息,回调处理函数int IpcUtility::ParseIpcMessageAndProcess(UINT iMessage, WPARAM wParam, LPARAM lParam, IIpcMessageProcessor* pProcessor){if (iMessage == WM_COPYDATA){COPYDATASTRUCT* pCopyData = (COPYDATASTRUCT*) lParam;if (pCopyData != NULL&& pProcessor != NULL){return pProcessor->OnIpcMessage((UINT) pCopyData->dwData, pCopyData->lpData, pCopyData->cbData);}}return ERROR_MESSAGE_NOT_HANDLED;}NAMESPACE_END;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。